如何放大treemap输出尺寸?解决癌症数据集树形图过密问题
解决Treemap树形图密集看不清的问题
问题说明
使用treemap包绘制癌症数据集的树形图时,数据与占比均正确,但输出图过于密集难以查看,需增大尺寸提升清晰度。原代码及数据集结构如下:
原代码
png(filename="tree.png",width=800, height=800) treemap(treeMAP, index=c("group","subgroup"), vSize="value", type="index", fontcolor.labels=c("white","black"), fontface.labels=c(4,2), inflate.labels=F, title = 'Treemap of cancer types', palette = "Set2") dev.off()
数据集结构
structure(list(group = c("Melanoma", "Melanoma", "Melanoma", "Melanoma", "Melanoma", "Melanoma", "Melanoma", "Melanoma", "Melanoma", "Melanoma", "Renal CC Carcinoma", "Renal CC Carcinoma", "Renal CC Carcinoma", "Urothelial Carcinoma", "Urothelial Carcinoma", "NSCLC", "NSCLC", "Thymic Carcinoma", "Breast"), subgroup = c("subgroup-1", "subgroup-2", "subgroup-3", "subgroup-4", "subgroup-5", "subgroup-6", "subgroup-7", "subgroup-8", "subgroup-9", "subgroup-10", "subgroup-1", "subgroup-2", "subgroup-3", "subgroup-1", "subgroup-2", "subgroup-1", "subgroup-2", "subgroup-1", "subgroup-1"), value = c(7, 49, 44, 14, 47, 39, 25, 53, 38, 119, 181, 356, 165, 298, 21, 25, 16, 9, 12)), class = "data.frame", row.names = c(NA, -19L))
解决方案
核心是提升输出图片的尺寸与分辨率,同时可微调标签参数优化显示:
- 增大图片尺寸与分辨率:修改
png()函数的width、height参数(建议设为1600以上),并添加res参数设置分辨率(如res=300,适配高清查看场景),让整体画布放大,区块间距更宽松。 - 可选:调整标签字号:若增大尺寸后标签仍拥挤,可添加
fontsize.labels参数,分别设置分组与子分组的标签大小,比如fontsize.labels=c(12,10)。
修改后的代码
# 设置更大尺寸与高分辨率 png(filename="tree_highres.png", width=1600, height=1600, res=300) treemap(treeMAP, index=c("group","subgroup"), vSize="value", type="index", fontcolor.labels=c("white","black"), fontface.labels=c(4,2), inflate.labels=F, # 可选:调整标签字号优化显示 fontsize.labels=c(12,10), title = 'Treemap of cancer types', palette = "Set2") dev.off()
效果说明
调整后输出的图片尺寸更大、细节更清晰,树形图的各个区块会更舒展,标签可读性显著提升,同时完全保留数据占比的准确性。
内容的提问来源于stack exchange,提问作者Programming Noob
相关产品推荐
相关产品推荐

