我正在使用ggplot将盒图和行放在相同的图中。我有两个数据帧,下面是这两个DFs的片段:
TMA.core variable value
1 I-5 H&E 356642.6
2 B-1 H&E 490276.9
3 B-13 H&E 460831.8
4 L-11 H&E 551614.2
5 B-6 H&E 663711.8
6 F-10 H&E 596832.8(有许多变量。)
TMA.core Mean CoV
I-5 390829.7 0.15181577
B-1 414909.9 0.21738852
B-13 500829.8 0.39049256
L-11 537229.7 0.07387486
B-6 575698.9 0.44764127
F-10 589245.2 0.15382864我想要做的是使用第一个数据帧绘制盒图,然后为相应的TMA核绘制CoV,然后使用geom_line进行连接。我的密码是:
ggplot() +
geom_boxplot(data = Merge_stats_melt, aes(x = reorder(TMA.core, value, FUN = mean), y = value)) +
geom_line(data = Merge_stas_mean_order, aes(x = reorder(TMA.core, Mean), y = CoV, group = 1)) +
scale_y_continuous(
# Add a second axis and specify its features
sec.axis = sec_axis(~./1000000, name = 'CoV')
) 使用这些代码,我可以绘制盒图,但在y= 0时,这条线总是一条水平线。如何解决这个问题?

发布于 2020-06-03 06:13:06
使用一两个数据帧并不重要。记住要相应地调整y的美学,这是你忘了做的。
library(ggplot2)
library(scales)双轴理想标度因子的求取
ratio <- max(Merge_stats_melt$value) / max(Merge_stas_mean_order$CoV)
ggplot() +
geom_boxplot(data = Merge_stats_melt, aes(x = reorder(TMA.core, value, FUN = mean), y = value)) +
geom_line(data = Merge_stas_mean_order, aes(x = reorder(TMA.core, Mean), y = CoV*ratio, group = 1)) +
scale_y_continuous(labels=comma,
sec.axis = sec_axis(~./ratio, name = 'CoV')
)

https://stackoverflow.com/questions/62164789
复制相似问题