使用ggplot2制作barplot时如何添加辅助轴

时间:2019-08-28 07:05:07

标签: r ggplot2 bar-chart

我有一个所示类型的数据集

Seasons        A        B        C        A1        B1        C1  
Winter         97       94       87       0.2       0.4       0.3  
Summer         92       94       101      1         0.7       0.3
 

每个季节都有值(夏季,冬季,秋季,春季),变量从(A到E)和(A1到E1)。使用ggplot2绘制条形图时,A1到E1的条形高度由于其较低的值而非常小,我希望将它们移到辅助轴,但是我不知道该怎么做。请建议代码。到目前为止,我一直在共享我的代码。

library(readxl)
library(ggplot2)
library(readxl)
cell_viability_data <- read_excel("C:/Users/CEZ178522/Downloads/ananya/Cell_viability.xlsx")
cell_viability_data


plot1 <- ggplot(data=cell_viability_data, aes(x=Seasons, y= CellViability, fill= Types)) +
  geom_bar(stat="identity", position=position_dodge()) +
             labs(title = "Seasonal Cell Viability") +
             theme(axis.text.x = element_text(colour = "grey1", size = 10),
                   axis.text.y = element_text(colour = "grey1", size = 10),
                   plot.title = element_text(hjust = 0.5))
plot1

enter image description here

我需要小条杆移动到副轴

1 个答案:

答案 0 :(得分:0)

ggplot长时间禁止使用次级y轴,因为它们通常造成的损害大于利弊。现在唯一的选择是显示辅助的辅助y轴,该辅助y轴与主要y轴具有直接的比例转换。换句话说,次要y轴是一个补充轴,它显示相同的信息,但显示的范围不同(摄氏和华氏度)。

您要提供的是将数据点的子集夸大一些任意值,因此它们与其余部分“同等”。考虑以下问题:通过选择缩放常数,可以使值A1-E1看起来比值A-E高很多吗?通过选择缩放常数,可以使值A1-E1看起来远小于值A-E吗?您可以通过选择缩放常数来使A1-E1值与A-E“相等”,但始终略低一些吗?如果是这样,则无论如何,您的数据可视化都将不可信。

请考虑:您要进行的重要比较是什么?每种季节都不同? A与A1?拿出笔和纸,尝试勾勒出您想要比较的东西,以及进行比较时遇到的问题。然后,您就可以在R / ggplot中进行可视化了。

相关问题