簡體   English   中英

R中的散點圖文本標簽

[英]Scatter plot Text labels in R

我正在繪制分類變量與連續變量,年齡與吸煙習慣的關系圖 下面是代碼。

stripchart(Age~Smoke, data = survey_clean_data , pch=16 , col = "blue", method = "jitter" ,main = "AGE VS SMOKE",na.rm = T)

我想為其添加標簽,如下圖所示, 在此處輸入圖片說明

我嘗試了幾種選擇..但是它被寫在其他之上。

means = c(paste("mean_Age =",roumean(survey_clean_data[Smoke == "Heavy","Age"],na.rm =T)),
          paste("mean_Age =",mean(survey_clean_data[Smoke == "Never","Age"],na.rm =T)),
          paste("mean_Age =",mean(survey_clean_data[Smoke == "Regul","Age"],na.rm =T)),
          paste("mean_Age =",mean(survey_clean_data[Smoke == "Occas","Age"],na.rm =T)))


text(50,survey_clean_data$Smoke,labels =  means)

數據:庫(MASS)附加(調查)

您的代碼有一些問題。 最主要的是,你要發送text()四個標簽(內容means ),但一些y坐標等於數據點的數量,因為你是在發送survey_clean_data R試圖均衡這些不均勻向量,從而導致繪制過度。

相反,您可以這樣做(數據是人為的,因為您沒有提供任何數據):

stripchart(Age~Smoke, data = survey_clean_data , pch=16 , col = "blue", method = "jitter" ,main = "AGE VS SMOKE",na.rm = T)

means <- aggregate(Age~Smoke, data = survey_clean_data, FUN = mean) # mean of each category
means$y <- 1:4 # add y-coordinates for each category

with(means, text(50, Smoke, labels = sprintf('Mean Age = %0.1f', Age))) # plot text labels on top of stripchart

結果:

在此處輸入圖片說明

jdobres給出的答案效果很好。 以下是另一種解決方案。

在散點圖中添加ylim=c(0.8,4.2)參數。 您可以將范圍從c(1,4)調整為c(0.8,4.2)。 后來的一個為我工作。

stripchart(Age~Smoke, data = survey_clean_data , pch=16 , col = 634, method = "jitter" ,main = "AGE VS SMOKE",na.rm = T,ylim=c(0.8,4.2))

在下面的行中,您可以調整文本的垂直高度。 例如:+ 0.1,-0.1等

text(50,c(1:4)+0.1,means)

暫無
暫無

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

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