是否有 R 函数来调整条形图的轴比例?

Posted

技术标签:

【中文标题】是否有 R 函数来调整条形图的轴比例?【英文标题】:Is there an R function to adjust scale in the axis for a barchart? 【发布时间】:2021-11-27 04:27:09 【问题描述】:

我有一个名为 crash_deaths_injuries_TA_pop 的数据框,看起来像:

TA_name Population
Gore 34466
Buller 444444
Cluth 34455

我试图用条形图显示数据,但是,x 轴的比例搞砸了,我不知道该怎么做。我知道这一定很容易,但我是编码新手,所以我很挣扎。

这是我的条形图代码:

ggplot(crashes_deaths_injuries_TA_pop, aes(x = reorder(TA_name, Population), y = Population, fill = Population)) +
  geom_col(alpha = 0.7) +
  scale_fill_distiller(palette = "Reds", direction = 1) +
  coord_flip() +
  labs(x = "", y = "Population", fill = "Population",
       title = "Populations of South Island TA's | 2018",
       caption = "Data: Census 2018, StatsNZ") +
  theme_minimal() +
  theme(legend.position = "none") 

我还想知道如何在每个 TA_name 的每个条的末尾添加一个像人口这样的数字

【问题讨论】:

是刻度还是科学记数法“搞砸了”? (参见例如***.com/questions/5352099/…) 我已经删除了科学记数法,但现在我想编辑中断,这会是用中断命令吗? 【参考方案1】:

使用scale_y_continuous(breaks = ) 编辑您的x 轴刻度并使用geom_text 在条形图旁边添加Population。这是一个例子。

ggplot(crashes_deaths_injuries_TA_pop, aes(x = reorder(TA_name, Population), y = Population, fill = Population)) +
  geom_col(alpha = 0.7) +
  scale_fill_distiller(palette = "Reds", direction = 1) +
  coord_flip() +
  labs(x = "", y = "Population", fill = "Population",
       title = "Populations of South Island TA's | 2018",
       caption = "Data: Census 2018, StatsNZ") +
  theme_minimal() +
  theme(legend.position = "none") +
  scale_y_continuous(breaks = seq(0, 5e05, 0.5e05)) + geom_text(aes(label = Population, y = Population+0.18e05))
  

【讨论】:

能否解释一下 scale_y_continuous 的 "0, 5e05, 0.5e05" 和 geom_text 的 "+0.18e05" 仅供将来使用,不太确定 @scumbagsurfer 首先,breaks = seq(0, 5e05, 0.5e05) 标记 x 轴。如您所见,刻度是50000 = 0.5e05, 1e05, 1.5e05, ... 的序列。您可以通过更改0.5e05 来更改刻度之间的间距。其次,添加+0.18e05来移动文本的位置,使数字不与条重叠。我手动测试了几个数字并为您找到合适的数字。

以上是关于是否有 R 函数来调整条形图的轴比例?的主要内容,如果未能解决你的问题,请参考以下文章

R语言ggplot2可视化水平条形图(horizontal bar plot)设置水平条形图的轴文本标签左对齐(axis lables left align in horizontal bar)

R语言 条形图

堆叠条形图的 Y 比例域最小值/最小值不为零; X 轴溢出

R绘制发散型条形图(Diverging Bars)

R-基本图形-ch6

R语言使用vcd包的spine函数可视化spinogram图(spinogram图是被归一化的堆叠条形图这样每个条形的高度一样内部显示不同分布的比例)