我需要生成一个两个变量的条形图和第三个变量的直线图。
我可以为一个变量创建柱形图,如下所示
df <- head(mtcars)
df$car <- row.names(df)
ggplot(df) + geom_col(aes(x=car, y=disp))
参考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条答案
按热度按时间yiytaume1#
您可以尝试:
代码更少,结果相同:
qoefvg9y2#
你需要另一个图层,因为
geom_line
是连续数据,你需要把你的x值当作线图层。这样做,数据的顺序就变得至关重要了,因此你也必须对它排序:顺便说一句,您可以通过调用
plotly::ggplotly()
来检查qsec
到相应x值的正确顺序,然后您可以更好地读取这些值并将它们与df
进行比较,因为如果您指向元素,它们就会显示出来...