我面臨以下問題:
1-我不知道如何控制圓的大小,所以當百分比的組數很大時,大小應該變大。例如,group1_north 的第一個點是 97%(0.97) 我希望它是一個比 8.6%(0.086) 更大的圓。
2-我不知道如何使每個圓圈的顏色不同。
3-圖上的標簽很難控制,尤其是長文本。如何控制大小和換行使其可讀。
df=data.frame(names_of_dissess=c("Hib Disease_type1","Hepatitis_type1","Flu (Influenza)_type1","Ebola_type1",
"Coronaviruses_type1","Japanese Encephalitis_type1"),
algorithm1=c(0.00,0.29,0.11,0.21,0.25,0.29)
,group1_north=c(0.97,0.086,0.34,0.11,0.086,0.11)
)
par( mar=c(6, 6, 4, 4),xpd = TRUE )
plot(group1_north ~algorithm1,
col="lightblue",
pch=19,
cex=2,
data=df,
xlab = "algorithm1",
ylab = "group1_north %",
xlim=c(0.0,0.3),
ylim=c(0.0,1),
main = "algorithm1 behavior",
font.main=10,
family = "A",
cex.main=1.1,
cex.lab=0.9
)
text(group1_north -0.02 ~algorithm1, labels=names_of_dissess,data=df, cex.main =.9, font=8)
uj5u.com熱心網友回復:
基礎 R 解決方案:請參閱下文了解如何著色和更改點的大小。關于文本標簽的定位:我的建議是用圖例替換文本標簽,以避免撰寫大量代碼以可讀的方式定位和調整文本標簽的大小,這會變得非常乏味。有一些包,比如directlabelandggrepel可以為你做這件事,但它們不適用于 ggplot、trellis 而不是基本 R 繪圖物件
df <- data.frame(names_of_disease = c("Hib Disease_type1", "Hepatitis_type1",
"Flu (Influenza)_type1", "Ebola_type1",
"Coronaviruses_type1", "Japanese Encephalitis_type1"),
algorithm1 = c(0.00, 0.29, 0.11, 0.21, 0.25, 0.29),
group1_north = c(0.97, 0.086, 0.34, 0.11, 0.086, 0.11))
par(mar = c(6, 6, 4, 4), xpd = TRUE )
plot(group1_north ~ algorithm1,
col = factor(df$names_of_disease), # use names_of_disease factor values to set point color
pch = 19,
cex = 10 * df$group1_north, # use group1_north as a scaling factor for point size
data = df,
xlab = "algorithm1",
ylab = "group1_north %",
xlim = c(0.0, 0.3),
ylim = c(0.0, 1),
main = "algorithm1 behavior",
font.main = 10,
family = "A",
cex.main = 1.1,
cex.lab = 0.9,
bty = 'n'
)
# replace text labels with a legend
legend('topright',
col = factor(df$names_of_disease),
legend = df$names_of_disease,
pch = 19,
bty = 'n')

uj5u.com熱心網友回復:
這使用 ggplot2 和擴展。我沒有讓標簽換行,但您可以在特定標簽內添加換行符(“\n”),只要您想換行。
library(ggplot2)
library(ggrepel)
df=data.frame(names_of_dissess=c("Hib Disease_type1","Hepatitis_type1","Flu (Influenza)_type1","Ebola_type1",
"Coronaviruses_type1","Japanese Encephalitis_type1"),
algorithm1=c(0.00,0.29,0.11,0.21,0.25,0.29)
,group1_north=c(0.97,0.086,0.34,0.11,0.086,0.11)
)
ggplot(df, aes(algorithm1, group1_north))
geom_point(aes(size = group1_north,
color = names_of_dissess),
show.legend = FALSE)
geom_text_repel(aes(label = names_of_dissess))

使用reprex v2.0.2創建于 2022-11-03
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/527264.html
標籤:r
