• 软件可视化
  • 如何使facet_wrap中每幅图的bar width都一样,并且图形安排合理呢?

废话不多说,上数据:

<br />
#这是我数据<br />
> T1<br />
    mn kind deal day variable      value<br />
1  E01    w    C   5      mCa 1408.55606<br />
2  E01    w    C   6      mCa  203.12438<br />
3  E01    m    C   5      mCa  516.09401<br />
4  E01    m    C   6      mCa  957.42041<br />
5  E01    n    C   5      mCa  340.32281<br />
6  E01    n    C   6      mCa 1385.94913<br />
7  E01    w    P   6      mCa  371.25402<br />
8  E01    w    P   7      mCa 1061.31650<br />
9  E01    w    P   8      mCa  312.29193<br />
10 E01    w    P   9      mCa  323.15918<br />
11 E01    m    P   6      mCa  717.85780<br />
12 E01    m    P   7      mCa  422.85011<br />
13 E01    m    P   8      mCa  916.49068<br />
14 E01    m    P   9      mCa 1141.75571<br />
15 E01    n    P   6      mCa  374.74239<br />
16 E01    n    P   7      mCa  352.06901<br />
17 E01    n    P   8      mCa  808.32529<br />
18 E01    n    P   9      mCa  449.08840<br />
19 E01    w    C   5      mCb  466.35246<br />
20 E01    w    C   6      mCb   55.33785<br />
21 E01    m    C   5      mCb  136.34537<br />
22 E01    m    C   6      mCb  296.63670<br />
23 E01    n    C   5      mCb   94.93097<br />
24 E01    n    C   6      mCb  446.53574<br />
25 E01    w    P   6      mCb  103.36843<br />
26 E01    w    P   7      mCb  318.95689<br />
27 E01    w    P   8      mCb   76.99478<br />
28 E01    w    P   9      mCb   82.84571<br />
29 E01    m    P   6      mCb  226.63040<br />
30 E01    m    P   7      mCb  112.83889<br />
31 E01    m    P   8      mCb  272.76592<br />
32 E01    m    P   9      mCb  356.53358<br />
33 E01    n    P   6      mCb   97.80123<br />
34 E01    n    P   7      mCb   89.60026<br />
35 E01    n    P   8      mCb  247.39115<br />
36 E01    n    P   9      mCb  115.42748<br />
> P2 <- ggplot(T1,aes(day,value,fill=kind))+<br />
  geom_bar(stat="identity",position="dodge",width=0.8)+<br />
  facet_wrap(~variable+deal,ncol=2,scales="free",as.table=FALSE)+<br />
  theme_bw() # 绘图命令<br />


我想让每副图的bar width都一样,该怎么弄?当然 bar width 一样之后左边图形也得相应缩小~~~

这是使用我的命令创建的图效果:

</p>

另外,我在STACK overflow遇到了相似问题,但实在看不太懂,并且图形方式不一样~~~而且如果分开来画不是变得更加复杂了~~~就想着一步就把它给画好了。。。但上图实在不美观。。。

附上其链接:

http://stackoverflow.com/questions/11606441/ggplot2-gridextra-how-to-ensure-geom-bar-in-different-size-plot-grobs-result

麻烦大家了。。。[s:11]

PS:

附上我的csv文件(可直接粘贴成CSV文件):

"","mn","kind","deal","day","variable","value"

"1","E01","w","C","5","mCa",1408.55606060606

"2","E01","w","C","6","mCa",203.124378596532

"3","E01","m","C","5","mCa",516.094012345679

"4","E01","m","C","6","mCa",957.420405443322

"5","E01","n","C","5","mCa",340.322806637807

"6","E01","n","C","6","mCa",1385.94913265306

"7","E01","w","P","6","mCa",371.254019607843

"8","E01","w","P","7","mCa",1061.31649590164

"9","E01","w","P","8","mCa",312.291926587302

"10","E01","w","P","9","mCa",323.159176470588

"11","E01","m","P","6","mCa",717.85780441447

"12","E01","m","P","7","mCa",422.850107142857

"13","E01","m","P","8","mCa",916.490676121949

"14","E01","m","P","9","mCa",1141.75571079294

"15","E01","n","P","6","mCa",374.742388888889

"16","E01","n","P","7","mCa",352.069013157895

"17","E01","n","P","8","mCa",808.325288614157

"18","E01","n","P","9","mCa",449.088395061728

"19","E01","w","C","5","mCb",466.352462121212

"20","E01","w","C","6","mCb",55.3378513497857

"21","E01","m","C","5","mCb",136.34537037037

"22","E01","m","C","6","mCb",296.636697530864

"23","E01","n","C","5","mCb",94.9309668109668

"24","E01","n","C","6","mCb",446.535739795918

"25","E01","w","P","6","mCb",103.368433952528

"26","E01","w","P","7","mCb",318.956885245902

"27","E01","w","P","8","mCb",76.9947757936508

"28","E01","w","P","9","mCb",82.8457058823529

"29","E01","m","P","6","mCb",226.630402820356

"30","E01","m","P","7","mCb",112.838892857143

"31","E01","m","P","8","mCb",272.765922054064

"32","E01","m","P","9","mCb",356.533577446704

"33","E01","n","P","6","mCb",97.8012323232323

"34","E01","n","P","7","mCb",89.6002631578947

"35","E01","n","P","8","mCb",247.391152758392

"36","E01","n","P","9","mCb",115.427478882391

想一句画好,还是 lattice 好了,分分钟 。。。

https://gist.github.com/road2stat/4971115

回复 第2楼 的 肖楠:

[s:11]谢谢肖大侠的解答~~~

也学会了textConection这个函数的用法~~~原来有这个函数哇。。。

我后来尝试了下facet_grid这个函数,只要加上space="free_x"这个就可以使每幅图的条形图width一样~~~只不过只能固定Y轴,所以当后面的数据偏小时有点不太美观,不过可以用了。。。

这是我换了命令画出的图:

P2 <- ggplot(T1,aes(day,value,fill=kind))+

geom_bar(stat="identity",position="dodge",width=0.8)+

facet_grid(variable~deal,scales="free",as.table=FALSE,space="free_x")+

theme_bw() # 绘图命令

图片如下:



换了数据后机会出现:



可惜facet_grid不支持右边的图画同样scales="free"

嗯~~~谢谢斑竹大人~~~哈哈哈。。。[s:18]