f=read.table(pipe('curl -s https://i.stack.imgur.com/vZwiL.gif | tail -c +43 | zcat'), header=T)
f$x=asinh(f$x)
f$y1=asinh(f$y1)
f$y2=asinh(f$y2)
png('out.png')
with(f, plot(c(x, x), c(y1, y2), type='n'))
with(f, points(x, y1, pch=20))
with(f, segments(x, y1, x, y2))
dev.off()
我想用上面的数据绘制一个线段图。目前的结果是这样的。
这不是很明显。列x是整数,间隔不是相对均匀的。我认为可以做一些事情,如1)将它们分组到bin中,2)以asinh尺度绘制bin,3)在每个bin中应用x中的gitter来解决重叠问题。
通过基于y1对段进行排序,使得y1在每个仓中从低到高(从左到右)排序,可以将3改变为3“。
如何绘制数据,使其比当前解决方案更易于查看(至少如上面两种方法所述,例如gitter vs sort,但也欢迎其他更具创造性的方法),而无需编写太多代码?(欢迎简单的R和ggplot2答案)
1条答案
按热度按时间mrphzbgm1#
对我来说,你想让什么样的数量/比较“更容易看到”并不明显,因为这个短语有点主观和上下文相关。
EDIT --为每个观测值分配其自身x值的附加方法,因此没有数据重叠,同时在缩放比例上保持x值在1以内。单独查看每个点需要非常宽的图形,但这应该是可能的。