簡體   English   中英

ggplot2-如何添加其他文本標簽

[英]ggplot2 - How to add additional text labels

我在使用ggplotstat_summary時遇到了一些麻煩。

請考慮以下數據:

head(mtcars)
data<-mtcars
data$hp2<-mtcars$hp+50

請考慮以下代碼:

ggplot(mtcars, aes(x = cyl, y = hp)) +
stat_summary(aes(y = hp, group = 1), fun.y=mean, colour="red", geom="line",group=1) + 
stat_summary(fun.y=mean, colour="red", geom="text", show_guide = FALSE, vjust=-0.7, aes( label=round(..y.., digits=0)))

該代碼將生成帶有hp均值的均線圖,以及均值均很好的文本標簽。 如果我們想添加另一條線/曲線,我們只需添加:

ggplot(mtcars, aes(x = cyl, y = hp)) +
stat_summary(aes(y = hp, group = 1), fun.y=mean, colour="red", geom="line",group=1) + 
stat_summary(fun.y=mean, colour="red", geom="text", show_guide = FALSE,  vjust=-0.7, aes( label=round(..y.., digits=0)))+
stat_summary(aes(y = hp2), fun.y=mean, colour="blue", geom="line",group=1) 

現在是棘手的部分:

如何將stat_summarygeom="text"一起使用,但對於hp2,即如何從技術上強制stat_summary在hp2上計算均值並打印文本標簽? 看來我只能將它用於“主要” y

這種類型的問題要求相關向量列的圖形,幾乎總是一個從寬到長的數據格式重塑問題。

library(ggplot2)

data_long <- reshape2::melt(data[c('cyl', 'hp', 'hp2')], id.vars = 'cyl')
head(data_long)

ggplot(data_long, aes(x = cyl, y = value, colour = variable)) +
  stat_summary(fun.y = mean, geom = "line", show.legend = FALSE) + 
  stat_summary(fun.y = mean, geom = "text", show.legend = FALSE,  vjust=-0.7, aes( label=round(..y.., digits=0))) +
  scale_color_manual(values = c("red", "blue"))

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM