r - 谁能帮我制作 PCA 3D 箱形图?
问题描述
我使用下面的代码来做 3D PCA,我只想制作一个 3D 箱形图。
Mydata = read.csv("PCA.csv")
head(Mydata)
pca = prcomp(Mydata[,6:11], scale. = TRUE)
summary(pca)
library(pca3d)
gr = factor(Mydata[,1])
pca3d(pca, group = gr)
dput(Mydata)
pca3d(pca,title = "Nanjing", axes.color= "black",group=gr, show.ellipses=TRUE,
ellipse.ci=0.95,biplot=TRUE, biplot.vars=3, show.centroids= TRUE,show.group.labels=FALSE, show.plane=FALSE, legend = "topleft")
下载我使用的图像
snapshotPCA3d(file="Nanjing.png")
但它没有用,它显示了一个我不明白的警告文本(见下文)
警告消息:1:在 rgl.snapshot(filename = file, fmt = "png", top = TRUE) 中:RGL:PNG Pixmap Saver 警告:IHDR 中的图像宽度为零 2:在 rgl.snapshot(filename = file, fmt = "png", top = TRUE) : RGL: PNG Pixmap Saver 警告:图像高度在 IHDR 3 中为零:在 rgl.snapshot(filename = file, fmt = "png", top = TRUE) : RGL: PNG Pixmap Saver错误:无效的 IHDR 数据 4:在 rgl.snapshot(filename = file, fmt = "png", top = TRUE) :RGL:PNG Pixmap Saver 错误:发生错误 5:在 rgl.snapshot(filename = file, fmt = "png", top = TRUE) : 'rgl.snapshot' 失败
我使用的数据
structure(list(Location = c("Ningde Coastal Area", "Ningde Coastal Area",
"Ningde Coastal Area", "Ningde Coastal Area", "Ningde Coastal Area",
"Ningde Coastal Area", "Ningde Coastal Area", "Ningde Coastal Area",
"Ningde Coastal Area", "Ningde Coastal Area", "Ningde Coastal Area",
"Ningde Coastal Area", "Ningde Coastal Area", "Ningde Coastal Area",
"Ningde Coastal Area", "Ningde Coastal Area", "Ningde Coastal Area",
"Luoyuan Bay", "Luoyuan Bay", "Luoyuan Bay", "Luoyuan Bay", "Luoyuan Bay",
"Luoyuan Bay", "Luoyuan Bay", "Luoyuan Bay", "Luoyuan Bay", "Luoyuan Bay",
"Luoyuan Bay", "Luoyuan Bay", "Luoyuan Bay", "Luoyuan Bay", "Luoyuan Bay",
"Luoyuan Bay", "Luoyuan Bay", "Luoyuan Bay", "Luoyuan Bay", "Luoyuan Bay",
"Luoyuan Bay"), Serial = c(14L, 15L, 17L, 18L, 19L, 20L, 21L,
22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L,
35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L,
48L, 49L, 50L, 51L, 52L), Station = c("NDDZ031", "NDDZ034", "NDDZ035",
"NDDZ041", "NDDZ046", "NDDZ048", "NDDZ050", "NDDZ055", "NDDZ058",
"NDDZ065", "NDDZ066", "NDDZ068", "NDDZ072", "NDDZ073", "NDDZ074",
"NDDZ080", "NDDZ082", "NDDZ91", "NDDZ92", "NDDZ94", "NDDZ95",
"NDDZ96", "NDDZ97", "NDDZ98", "NDDZ99", "NDDZ103", "NDDZ105",
"NDDZ106", "NDDZ107", "NDDZ112", "NDDZ113", "NDDZ114", "NDDZ115",
"NDDZ116", "NDDZ117", "NDDZ119", "NDDZ122", "NDDZ123"), Longitude = c(119.8156314,
119.8109757, 119.9013884, 120.1667206, 120.0796901, 119.7829741,
119.9602213, 119.7401038, 120.1113902, 119.7060803, 120.1239972,
119.7798066, 120.0968136, 119.7086703, 119.7827459, 120.0751752,
120.0621476, 119.6875, 119.6641667, 119.7163889, 119.7425, 119.69,
119.7719444, 119.6622222, 119.7544444, 119.6644444, 119.6875,
119.7369444, 119.7672222, 119.6583333, 119.6327778, 119.5991667,
119.6769444, 119.7019444, 119.7419444, 119.6216667, 119.6722222,
119.6408333), Latitude = c(26.48095232, 26.51638163, 26.53300528,
26.54343039, 26.56656159, 26.59238665, 26.6023812, 26.62635719,
26.64614884, 26.70021888, 26.70684282, 26.72669529, 26.75513142,
26.77262578, 26.7665767, 26.82756691, 26.6238606, 26.34944444,
26.35972222, 26.36, 26.36027778, 26.37583333, 26.38277778, 26.38638889,
26.39277778, 26.41055556, 26.41972222, 26.42833333, 26.42861111,
26.43361111, 26.44416667, 26.45, 26.45, 26.44805556, 26.44805556,
26.46638889, 26.47166667, 26.4775), MPs = c(101.1310963, 126.7889088,
85.74767297, 153.5234525, 51.35979247, 42.82041038, 214.4548942,
96.9063435, 155.5864259, 46.01889546, 97.50099786, 78.36325034,
161.375366, 99.76091135, 59.82528502, 98.7524581, 110.3141717,
89.08, 103.02, 89.61, 106.42, 36.85, 66.93, 81.39, 152.58, 171.61,
105.34, 148.31, 293.68, 279.4, 248.44, 273.39, 131.06, 36.33,
29.62, 89.07, 382.31, 170.27), Petrolium = c(26.41089103, 5.575674479,
112.1713291, 15.76231172, 28.05251105, 15.56603488, 34.78641497,
20.95268019, 11.97087574, 28.16452888, 45.10068937, 32.00209717,
1.098327442, 195.4523585, 94.0545153, 20.3648651, 19.08090108,
20.26723856, 35.12860786, 38.00639611, 485.9158071, 6.801285888,
130.2613429, 26.41691724, 21.47363409, 75.24255785, 9.088017875,
17.83869051, 106.4365614, 367.7372615, 26.95847112, 42.01753212,
17.56582294, 72.00256098, 382.5705508, 150.0004825, 452.8679126,
61.51137016), Sulfide = c(5.19, 0, 72.82, 19.49, 2.93, 0, 43.95,
1.37, 23.27, 12.19, 35.69, 77.05, 4.03, 65.29, 55.12, 29.95,
14.93, 15.16, 47.67, 30.23, 75.05, 10.51, 38.75, 21.64, 35.97,
122.53, 6.95, 58.52, 75.92, 92.23, 10.85, 72.1, 28.46, 81.19,
195.59, 42.54, 277.4, 81.67), PCB = c(5.76, 1.44, 8.84, 11.92,
3.4, 17.08, 0.56, 10.56, 5.24, 1.96, 6.44, 9.44, 10.28, 12.92,
14.52, 0, 7.84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0), PAH = c(23.36922085, 24.88374369, 21.49366333,
25.69248678, 27.47334181, 36.56726931, 478.4803895, 39.12822287,
17.2462056, 29.30102312, 232.0038657, 98.88904227, 22.6525315,
31.41940388, 29.73926409, 36.20400715, 28.34097634, 0.0479, 0.0638,
0.1312, 0.1293, 0.0589, 0.1032, 0.2725, 0.0712, 0.1173, 0.0703,
0.2097, 0.1261, 0.0685, 0.0796, 0.1353, 0.0354, 0.0323, 0.034,
0.0269, 0.0952, 0.0269), OCP = c(0.165265157, 0.004517346, 0.417073616,
2.155375191, 0, 23.48084273, 0, 2.096700845, 1.852219063, 0.074522052,
0.694281604, 0.112198511, 0.171174141, 4.644606351, 0.969985822,
1.942156359, 2.36619641, 0.01071845, 0, 0, 0, 0, 0.004247812,
0, 0, 0, 0.002020821, 0, 0.055799207, 0.003690873, 0.019063717,
0, 0.173323781, 0.010429405, 0, 0, 0.013486877, 0)), class = "data.frame", row.names = c(NA,
-38L))
解决方案
我使用了这段代码,它可以工作:
rgl.snapshot(filename = "PCA7gr.png",fmt="png",webshot2=TRUE)
推荐阅读
- scheduled-tasks - Kentico 任务计划程序错误:远程服务器返回错误:(403)禁止
- python - Numpy:数组上函数的赋值和评估
- python - 在多个请求期间防止更新查询中的 MongoDB 竞争条件
- kivy - Kivy:发送事件并发送到父和兄弟小部件
- laravel - 在 postcss 项目中加入制表符
- c - C 逻辑运算符的区别
- javascript - 为什么两个按钮都会重新渲染?
- r - 创建一个 35 行 15 列的矩阵,其中数字从 1 到 4 随机采样
- arrays - 如何处理 Leetcode 问题“检查数组对是否可被 k 整除”?
- c# - 如果一个方法在不同的线程上执行但非并发,它是否需要是易失的?