楼主: 白塔湖123
5291 4

请教关于sas画热力图的几个问题 [推广有奖]

  • 2关注
  • 6粉丝

已卖:2138份资源

教授

1%

还不是VIP/贵宾

-

威望
0
论坛币
22330 个
通用积分
2.8031
学术水平
3 点
热心指数
20 点
信用等级
3 点
经验
5284 点
帖子
286
精华
0
在线时间
1683 小时
注册时间
2012-9-20
最后登录
2025-11-21

楼主
白塔湖123 发表于 2017-2-25 17:23:19 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
请问一下有没有哪位同学用sas画过热力图?

热力图
我画出来的热力图是这个样子的,但是实在觉得不大好看。

请问有没有哪位同学对画热力图的命令比较熟悉。

我想做3个改动:
1.横轴能否把那几个日期的大小给调小一些?
2.横轴能否把那几个日期竖着排列?
3.热力图的这5个颜色是系统默认的颜色,如何才能对默认的这几个颜色进行调整?换成我想要的颜色?

论坛币不是问题,如果确实能解决我的问题,可以支付很多论坛币。

感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:请问有没有 我的问题 有没有 论坛币 如何

沙发
zwnSAS121 发表于 2017-2-25 20:48:21
  1. /*自定义标签*/
  2. proc format;
  3. value pdb
  4. 1="1W2X"
  5. 2="3H0J"
  6. 3="3H0Q"
  7. 4="3TV5"
  8. 5="3TVU"
  9. 6="3TVW"
  10. 7="3TZ3"
  11. 8="4WYO"
  12. 9="4WZ8"
  13. 10="5CTB"
  14. 11="5CTC"
  15. 12="5CTE";

  16. data rmsd1;
  17. format RowLab pdb.;
  18. format ColLab pdb.;
  19. do RowLab=1 to 12;
  20. do ColLab=1 to 12;
  21. input Value @@;
  22. output;
  23. end;
  24. end;
  25. cards;
  26. 0        0.224        0.25        0.226        0.236        0.248        0.267        0.407        0.418        0.239        0.27        0.363
  27. 0.224        0        0.246        0.23        0.242        0.225        0.303        0.442        0.459        0.245        0.257        0.41
  28. 0.25        0.246        0        0.305        0.275        0.242        0.324        0.394        0.386        0.262        0.289        0.378
  29. 0.226        0.23        0.305        0        0.145        0.129        0.216        0.398        0.41        0.149        0.162        0.331
  30. 0.236        0.242        0.275        0.145        0        0.137        0.194        0.324        0.306        0.127        0.137        0.301
  31. 0.248        0.225        0.242        0.129        0.137        0        0.224        0.34        0.326        0.122        0.137        0.301
  32. 0.267        0.303        0.324        0.216        0.194        0.224        0        0.39        0.392        0.214        0.257        0.345
  33. 0.407        0.442        0.394        0.398        0.324        0.34        0.39        0        0.132        0.351        0.309        0.205
  34. 0.418        0.459        0.386        0.41        0.306        0.326        0.392        0.132        0        0.328        0.294        0.181
  35. 0.239        0.245        0.262        0.149        0.127        0.122        0.214        0.351        0.328        0        0.14        0.296
  36. 0.27        0.257        0.289        0.162        0.137        0.137        0.257        0.309        0.294        0.14        0        0.273
  37. 0.363        0.41        0.378        0.331        0.273        0.301        0.345        0.205        0.181        0.296        0.273        0
  38. ;
  39. run;

  40. data rmsd2;
  41.    if _n_ = 1 then /* Scale matrix size by the number or rows/columns */
  42.    call symputx('size',ceil(18 * sqrt(n)));   
  43.    set rmsd1 nobs=n;
  44.    Outline = ifn(Value > 1, Value, .); /* Outline the nonmissing values (Value > 1) */
  45.    output;
  46. run;

  47. proc print data=rmsd2(obs=13);
  48. id RowLab ColLab;
  49. run;

  50. %put &size;

  51. proc template;
  52.    define statgraph matrix;
  53.       begingraph / designheight=%eval(250+&size) /* Size: a bit higher than wider */
  54.                    designwidth =%eval(200+&size);
  55.          entrytitle "RMSD Matrix";
  56.          layout overlay / yaxisopts=(discreteopts=(tickvaluefitpolicy=none)
  57.                                      display=(tickvalues) reverse=true)
  58.                           xaxisopts=(discreteopts=(tickvaluefitpolicy=rotate)
  59.                                      display=(tickvalues));
  60.             * Heat map provides the background color for each cell;
  61.             heatmapparm y=RowLab x=ColLab colorresponse=Value /
  62.                ColorModel=(GraphWalls:color ThreeColorRamp:StartColor);
  63.             * Heat map provides the outlines;
  64.             heatmapparm y=RowLab x=ColLab colorresponse=Outline /
  65.                ColorModel=(GraphWalls:Color ThreeColorRamp:StartColor)
  66.                display=all includemissingcolor=false fillattrs=(transparency=1)
  67.                outlineattrs=graphdata2(thickness=1);
  68.             * Textplot provides the values;
  69.             textplot y=RowLab x=ColLab text=eval(put(Value,5.3)) /
  70.                      textattrs=(size=12px) position=center;
  71.          endlayout;
  72.       endgraph;
  73.    end;
  74. run;

  75. proc sgrender data=rmsd2 template=matrix;
  76. run;
复制代码

藤椅
白塔湖123 发表于 2017-2-26 16:03:37
zwnSAS121 发表于 2017-2-25 20:48
您好,其实我是想把横轴的日期比如“201502这个的字体给调小一些”,但是您写的textplot命令似乎是把每个格子的数值标记出来。
不知道您知不知道什么命令可以对横轴的日期进行编辑?我想把“201502”的字体弄小一点,因为日期比较多,我想让横轴的日期竖着排列下来,不知道您了不了解如何修改?

我把数据集放上来了,如果您方便的话,请指点一二。我的数据中是想让_X='time1' _Y='sector' _Z='grouprank'

sample.rar (1.79 KB)


然后关于每个格子的颜色的话,我想请问一下,因为我的_Z其实是有5个值,0-4,我能不能自己设置每个数值对应的颜色?比如0对应绿色,1对应蓝色 等等


谢谢!

板凳
l1i2n3i4n5g 在职认证  发表于 2017-2-27 10:22:17
你的程序是怎样的呢?

报纸
sasjunior 发表于 2017-6-20 10:24:20
您好,请问您这个图是怎么画的,能分享下么?我也想画一个像您这样的图,谢谢!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 11:03