我需要为两个变量生成带条形图的图,使用第三个变量生成一条线 .
我可以为下面的一个变量创建一个列图
df <- head(mtcars)
df$car <- row.names(df)
ggplot(df) + geom_col(aes(x=car, y=disp))
Ref this回答 - 我可以绘制两个变量 - disp
和 hp
如下
library(tidyr)
df$car = row.names(df)
df_long = gather(df, key = var, value = value, disp, hp)
ggplot(df_long, aes(x = car, y = value, fill = var)) +
geom_bar(stat = 'identity', position = 'dodge')
我需要将第三个变量 qsec
绘制成如下图所示的线 - 如何解决这个问题?
2 回答
您需要另一个图层,因为
geom_line
用于连续数据,您需要将x值用于线图层 . 通过这样做,数据的顺序变得至关重要,因此您还需要对其进行排序:Edit:
顺便说一下,你可以通过调用
plotly::ggplotly()
来检查qsec
到相应x值的正确顺序,然后你可以更好地读取它们并将它们与df
进行比较,因为如果你指向元素它们会显示出来......你可以试试: