-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bar plot parameters #3
Comments
这是个好问题,也是第一个真正有挑战性的问题。我目前设计的 我想这些属性最好是不要通过主函数echart()传进来,因为series只是ECharts众多选项中的一个构成部分,你肯定不希望将来这个函数有几百个参数。 你可以仿照eAxis()的思路想想。这个包的整体设计思路就是拼凑echart()中的params列表,这个列表目前只有三个组成部分:series, xAxis, yAxis。你想完成的是修改其中的series列表,那么你不妨用一个eSeries()函数来做。比如说这样修改第一个series的barCategoryGap属性: echart() %>% eSeries(which = 1, barCategoryGap = '0%') 具体eSeries()怎么设计你参考一下eAxis(),唯一一点需要清楚的是,chart参数是echart()返回的一坨列表,其中chart$x就是echart()内部的params。 这样设计出来的函数才有通用性。有了eSeries(),你可以修改任何图形的任何序列的任何属性,而不是硬把某个barCategoryGap属性塞在某个函数内(当然你可以后面再写个包装函数,例如eHist(),用来一句话生成直方图)。 回到直方图:我不知道你现在的设计画出来的图形是什么样,但有一点我觉得你没有仔细思考,hist()返回的列表中,breaks的长度比counts多1,你把这两个长度不等的向量摁在一起画图我不知道要闹那样。直方图的难点在于坐标轴的刻度。假设频数在y轴,变量值在x轴,那么y轴的刻度好说,因为它是数值型的坐标轴,ECharts会自动安排刻度,关键在x轴,你用条形图来画的话,意味着x轴是类目型,虽然它实际上应该是数值型,也许你可以用每个区间的中值去代表这个区间,这是问题之一;问题之二在于,怎样选择区间可以使得区间的中值尽量是“整数”,我说的整数是看起来比较整的数字,例如0/0.5/1/1.5等等,如果你用hist()的结果,出来的结果可能不太整,看起来就会不好看,你肯定不愿意读一个横轴刻度是0.123/0.382/0.614/...的直方图,多费劲啊。 思考,好好思考。 |
确实是看个分布就好了,但也得把刻度的位置弄对,以及尽量让刻度上的数字可读。你不能让n个条和n+1个类别去画条形图啊。 又及:是我眼花了还是这x轴上确实附着着很薄一层绿(兰?)色的东西? |
阿哈?蓝色的?xy轴都是蓝色的呀。然后貌似是灰色的背景线和蓝色有点小重叠... |
hist()的确考虑了区间边界的“美化”,但你要考虑这个问题:在这里因为我们是用条形图画直方图,x轴上标记的是区间的中值,区间的边界是整数,可能就会意味着中值不是整数,所以你需要想办法做这两件事中的一件:
|
.....我昨天想了一下,如果x本身就是0-1之间的这种的话,也不能直接写成整数。 2015-05-01 13:31 GMT-07:00 Yihui Xie [email protected]:
Find me at www.cloudlychen.net Senior Analyst, Experimentation Research, eBay. |
这个你不用太操心,我第一次写整数的时候打了引号,意思是尽量整的数字,只要不是带十八位小数的数字就好。pretty()函数已经做了所有的工作了,例如: > pretty(runif(10))
[1] 0.0 0.2 0.4 0.6 0.8 1.0 你需要想的只是怎么把它用到直方图中而已。 |
嗯,周末有空的话我去改一下。我昨天写了一下加点和线的函数,还没来得及测试... 2015-05-01 14:17 GMT-07:00 Yihui Xie [email protected]:
Find me at www.cloudlychen.net Senior Analyst, Experimentation Research, eBay. |
测试后发PR记得带图。谢谢。 |
记下了,你早说嘛。 On Fri, May 1, 2015 at 2:39 PM, Yihui Xie [email protected] wrote:
Find me at www.cloudlychen.net Senior Analyst, Experimentation Research, eBay. |
看图比看代码容易一些……如果图上有啥问题,我一眼就可以看出来;代码要是有什么问题,我还得思考一下。所以把简单的任务安排在前面。 |
果然男人都是视觉的动物 On Friday, May 1, 2015, Yihui Xie [email protected] wrote:
Find me at www.cloudlychen.net Senior Analyst, Experimentation Research, eBay. |
以堆叠的条形图为例:
https://echarts.baidu.com/doc/example/bar4.html
可以往series里面加的有stack, itemStyle, barGap, barCategoryGap等等。基本就是说这些bar怎么排列组合,标签怎么弄,柱子宽度高度什么的。
你觉得怎么放进来比较合适?data_bar()还是拎另外一个函数出来?
The text was updated successfully, but these errors were encountered: