【发布时间】:2019-11-11 22:20:39
【问题描述】:
以下代码绘制了 x 元素计数的条形图,y 轴采用对数刻度。
library(ggplot2)
library(scales)
myData <- data.frame(
x = c(rep(1, 22500),
rep(2, 6000),
rep(3, 8000),
rep(4, 5000),
rep(11, 86),
rep(16, 15),
rep(31, 1),
rep(32, 1),
rep(47, 1))
)
ggplot(myData, aes(x=x)) +
geom_bar(width = 0.5)+
geom_text(stat='count', aes(label = ..count..), vjust = -1, size=3)+
scale_y_log10(breaks = trans_breaks("log10", function(x) 10^x),
labels = trans_format("log10", math_format(10^.x)))+
scale_x_continuous(breaks=(seq(1:47)))
下面是剧情:
我的问题是:
如何删除那些计数为零的列的 x 轴刻度线/标签?
如何更好地显示
31、32、47列的值? (计数为 1 的人)如何标记最高列的计数? (在这种情况下,
1列的22500)
【问题讨论】:
-
您的一些问题非常基于意见,尤其是您询问什么是“表示此数据的更好方法”的部分。一般来说,这些问题没有错,但在 Stack Overflow 上,基于意见的问题是题外话。通常也建议一次问一个问题。我建议重新表述您的问题,以专注于一个特定问题。
-
附言。您可以在 SO 上找到您的一些子问题的答案;例如之前肯定有人问过如何向条形图添加标签。
-
我是数据可视化的新手,我意识到我的图表非常稀疏,我不确定我的方法是否是最好的。另外,我添加了标签,因为我已经阅读了这些答案。我的问题是如何删除一些标签/或有选择地添加初始标签。
-
我明白了;但正如我所说,基于意见的问题在这里是过时的。此外,我可以保证,坚持一次一个问题的规则将导致更多更好的(如有针对性的)响应。