我有一个简单的频率直方图的数据与65 k行,这里是我的代码与一个例子数据:
data <- data.frame(var1=floor(6*rnorm(65000) + 1))
data %>%
ggplot(aes(x=var1)) +
geom_histogram(fill="lightblue", color="black", alpha=0.9, bins = 30) +
theme(plot.title = element_text(size=15),
axis.text.x = element_text(angle = 90, vjust = 0.5)) +
stat_bin(geom="text",
colour="black",
bins = 30,
aes(label=..count..),
angle = 45,
vjust=-.5)
该图有30个区间,但在X轴上有3个标签:
我只想每个箱子都有标签。
我尝试了theme()和scale_x_cont(),但它们不起作用,并扰乱了整个情节。我不想改变任何东西,我只想在x上添加标签。谢谢大家!
4条答案
按热度按时间j2datikz1#
绘制直方图的另一种方法,同时允许为每个bin添加轴标签,将
geom_bar
与scale_x_binned
一起使用:huwehgph2#
一种方法是将
scale_x_continuous()
与breaks
一起使用xlpyo6sf3#
在
?scale_x_continuous
中,breaks
参数可以是以下之一NULL
(无中断)waiver()
,表示变换对象计算的默认中断位置的数值向量
一个函数,它以极限作为输入,并返回中断作为输出(例如,
scales::extended_breaks()
返回的函数)。也接受rlang
lambda函数表示法。使用最后一个选项,我们可以创建一个简单的函数,给出轴上的每个整数:
nsc4cvqm4#
可以使用
scale_x_continuous
修改x轴比例的外观。可以使用n.breaks
更改中断数,也可以使用breaks
或labels
进行调整。documentation提供了很好的细节,这个book是一个很棒的资源,可以更好地理解scales(以及ggplot2
作为一个整体)。对于您的代码,答案如下所示:
我还要补充一点,
..count..
已经被ggplot2 3.4.0
弃用。下面是关于弃用和新方法的更多信息。要避免收到警告,请尝试: