R绘图:散点圆大小/颜色控制及长标签可读性优化咨询
R散点图问题解决方案
1. 散点大小随数值动态调整
把plot函数里固定的cex=2改成基于group1_north的动态值,比如cex=group1_north*5(系数5可根据视觉效果调整)。这样数值越大的点,圆圈尺寸就越大,完全匹配你要的大小变化逻辑。
2. 为每个散点设置不同颜色
在plot函数的col参数里,用颜色序列或自定义颜色列表即可。比如col=rainbow(nrow(df))会自动生成和数据行数匹配的彩虹色,也可以手动指定颜色,比如col=c("#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00")。
3. 长文本标签换行与大小控制
- 先把标签里的下划线替换成换行符,用
gsub("_", "\n", df$names_of_dissess)实现自动换行; - 在
text函数里,用cex参数控制标签大小(比如cex=0.8),同时调整标签的y轴偏移量(比如从-0.02改成-0.05),避免和散点重叠。
修改后的完整代码
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=rainbow(nrow(df)), # 每个点分配不同颜色 pch=19, cex=group1_north*5, # 点大小随group1_north数值变化 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(x=df$algorithm1, y=df$group1_north - 0.05, # 调整y轴位置避免重叠 labels=gsub("_", "\n", df$names_of_dissess), # 下划线替换为换行 cex=0.8, # 控制标签大小 font=1)
内容的提问来源于stack exchange,提问作者cat cat
相关产品推荐
相关产品推荐

