我想在R中执行以下操作:我有两个数据集(一个由4个值组成,另一个由3个值组成),我想使用ggplot2分别将它们绘制成条形图。但是,我想要同时使用相同的比例尺,即:如果数据集#1的最小值为0.2,数据集#2的0.4,则我希望两个数据集都使用0.2。对于最大值也适用(选择更大的值)。
因此,基本上,我想使这两个图表可比较。当然,最好应用相同的比例尺来着色条形图。现在,我正在使用
下面提供了一个MWE:
给定上面的代码,以及另一个数据集,如
因此,基本上,我想使这两个图表可比较。当然,最好应用相同的比例尺来着色条形图。现在,我正在使用
colorRampPalette
并将其应用于scale_fill_gradient2
属性。下面提供了一个MWE:
library("ggplot2")
val <- c(0.2, 0.35, 0.5, 0.65)
labels <- c('A', 'B', 'C', 'D')
LtoM <-colorRampPalette(c('green', 'yellow'))
df <- data.frame(val)
bar <- ggplot(data = df,
aes(x = factor(labels),
y = val,
fill = val)) +
geom_bar(stat = 'identity') +
scale_fill_gradient2(low=LtoM(100), mid='snow3',
high=LtoM(100), space='Lab') +
geom_text(aes(label = val), vjust = -1, fontface = "bold") +
labs(title = "Title", y = "Value", x = "Methods") +
theme(legend.position = "none")
print(bar)
给定上面的代码,以及另一个数据集,如
c(0.4, 0.8, 1.2)
和标签 c('E', 'F', 'G')
,如何调整代码以创建两个不同且分离的图形(最终保存为PNG),但使用相同的 (0.2到1.2
) 刻度来表示柱子的高度和颜色(因此将图像放在一起,表明具有相同高度但属于不同图像的柱子以相同方式出现,并且它们的颜色相同)?
min(min(dataset1), min(dataset2))
作为你的第一个ylim()
参数。 - cimentadajscale_fill_gradient2
中设置limits
,以保持绘图之间的填充比例尺相同。 - aosmith