r - 如何使用 ggplot 包从数据框的两列中绘制两条线并缩放 y 轴

标签 r dataframe ggplot2 ggplotly

我正在尝试比较数据框中两列的值。我想使用 ggplot 并绘制两条线,指示第一列中的所有值都大于第二列。

这是我的 df:

C1 <- c(-1.363953,4.265514,5.609484,7.524796,2.562210,7.214769, 4.667354,4.950837,4.134733,7.540626)
C2 <- c(-1.541836,4.248582,5.557042,7.475255,2.424585,7.125046,4.524404  4.890195,3.945435,7.488123)
C3 <- seq(1:10)
Name <- paste(letters[1:10])
df <- data.frame(Name = paste(letters[1:10]), C1, C2,C3)


Name        C1        C2.     C3
 a      -1.363953   -1.541836  1
 b       4.265514    4.248582  2
 c       5.609484    5.557042  3
 d       7.524796    7.475255  4
 e       2.562210    2.424585  5
 f       7.214769    7.125046  6
 g       4.667354    4.524404  7
 h       4.950837    4.890195  8
 i       4.134733    3.945435  9
 j       7.540626    7.488123 10

首先我要转置数据。 tt <- t(df) 这是我绘制值的命令:

 matplot(x<- 1:10, cbind(tt[2,],tt[3,]),type="l",col=c("red","green"),lty=c(1,1))

由于这些值非常接近,我无法在图中非常清楚地看到差异。 enter image description here

我想使用 ggplot 函数并缩放 y 轴,以便我可以更好地看到两条线的差异。

你知道我该怎么做吗? 谢谢

最佳答案

您可以将scale_y_continuous()与ggplot中的limits参数一起使用。如果只是为了绘图目的,则无需转置。考虑到两条线之间的差异以及 y 轴上数据点的总跨度,您永远无法在不丢失一些数据点的情况下真正使它们之间的差异更容易看到。您可以尝试在不同颜色的背景上使用不同颜色的线条或线条类型,以使差异更加明显?

ggplot(data = df, aes(x = C3, y = C1))+
  scale_y_continuous(limits = c(2.4,7.7))+
  geom_line(aes(x = C3, y = C1),colour = "red")+
  geom_line(aes(x = C3, y = C2),colour = "green")

关于r - 如何使用 ggplot 包从数据框的两列中绘制两条线并缩放 y 轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55604476/

相关文章:

r - 使用 `with` 分配给 data.frame

python - 填充 Pandas 数据框中缺失的中间值

r - 在条形图中组合 scale_fill_manual 和 scale_x_discrete 时缺少图例

python - 根据自定义范围离散化 Pandas 列

python - 在另一个单元格中的plot()之后未渲染AxesSubplot

r - 使用 geom_abline() 和 ggplot

r - 将分面标题注释为分面上的 strip

r - 将不同数据集中的 geom_text 添加到 geom_bar

r - 使用 R 和 csv 文件在浏览器中打开多个网址

在 R 中使用变量标签重命名变量