問題:如何在一張圖上面繪制多組散點圖和折線圖?例如在下面的評分數據中,每輪數據繪制散點圖,平均值繪制折線圖。
數據(excel):營業廳評分數據
做法:R語言ggplot函數
library(readxl) library(ggplot2) data<-read_excel("C:\\...\\數據.xlsx",sheet = 2,col_names=T) names(data)<-c("x","y1","y2","y3","y4","ym") fills=c('第一輪'="blue",'第二輪'="yellow",'第三輪'="lightpink",'第四輪'="red",'平均值'="green") ggplot(data)+geom_point(aes(x,y=y1,fill ="第一輪"),size=5,shape=21,color="black")+ geom_point(aes(x,y=y2,fill="第二輪"),size=5,shape=21)+ geom_point(aes(x,y=y3,fill="第三輪"),size=5,shape=21)+ geom_point(aes(x,y=y4,fill="第四輪"),size=5,shape=21)+ geom_point(aes(x,y=ym,fill="平均值"),size=5,shape=21)+ geom_line(aes(x,y=ym),color="black",group=1)+labs(x="營業廳名稱",y="評分",title="員工形象管理評分情況",fill="")+ scale_fill_brewer(,limits=c('第一輪','第二輪','第三輪','第四輪','平均值'))+ theme(plot.title = element_text(hjust = 0.5)) #采用默認配色
注:
- read_excel("C:\\...\\數據.xlsx",sheet = 2,col_names=T) #sheet指定第幾個表,col_names=T 是將第一行設成列名。
- names(data)<-c("x","y1","y2","y3","y4","ym") #重命名列名,便於后面分開使用各列。
- fills=c('第一輪'="blue",'第二輪'="yellow",'第三輪'="lightpink",'第四輪'="red",'平均值'="green") #添加映射,便於后面圖例按“第一輪”的形式輸出。
- ggplot(data)+geom_point(aes(x,y=y1,fill ="第一輪"),size=5,shape=21,color="black") #填充參數fill是映射關系,放到aes函數里,shape=21 指定形狀為實心圓點,color指定邊框顏色。
- geom_line(aes(x,y=ym),color="black",group=1)+labs(x="營業廳名稱",y="評分",title="員工形象管理評分情況",fill="") #geom_line添加折線,group=1 參數必須設定。labs設定行列標題及主標題,fill=“”指去掉圖例標題。
- scale_fill_brewer(palette='Set1',limits=c('第一輪','第二輪','第三輪','第四輪','平均值')) #palette='Set1'設定顏色類型,空的話為默認色,limits 指定圖例排列順序。
- theme(plot.title = element_text(hjust = 0.5)) #plot.title = element_text(hjust = 0.5) #水平調整主標題文本位置到正中間,hjust = 0指靠左對齊。