R 如何使用ggplot软件包从两列数据框中绘制两条线并缩放y轴
我试图比较数据框中两列的值。我想使用ggplot和plot两行代码来表示第一列中的所有值都大于第二列 这是我的df:R 如何使用ggplot软件包从两列数据框中绘制两条线并缩放y轴,r,dataframe,ggplot2,ggplotly,R,Dataframe,Ggplot2,Ggplotly,我试图比较数据框中两列的值。我想使用ggplot和plot两行代码来表示第一列中的所有值都大于第二列 这是我的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.
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
C1您可以在ggplot中使用带有限制参数的scale\u y\u continuous()
。如果只是出于绘图目的,则无需转置。考虑到两条直线之间的差异,以及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")
<>我同意@ DiviBISN,如果差异很重要,那么你应该考虑只绘制差异,这将使它更清楚地看到确切的区别。
library(dplyr)
library(ggplot2)
df %>%
mutate(diff = C1 - C2) %>%
ggplot() + aes(factor(C3), diff, group = 1) + geom_line()
您也可以使用geom_point()
,但我认为geom_line()
可以更好地表达它
或使用基础打印
df$diff <- df$C1 - df$C2
plot(df$C3, df$diff, type = "l")
df$diff您作为示例添加的代码的第3行中缺少了什么?如果差异是重要的,为什么不绘制它?不是2条直线,而是1条线,即C1-C2。这将使差异更加明显,特别是因为与实际值相比差异很小。谢谢你的回复。您认为使用gather()和使用条形图有助于查看两列中的值的差异吗?我不知道,我从未使用过它,抱歉。你可以考虑绘制C1和C2之间的差异,即X=C3和Y=(C2-C1),如果原始值与差异不那么重要吗?
df$diff <- df$C1 - df$C2
plot(df$C3, df$diff, type = "l")