Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 打印颜色不正确_R_Plot_Plotrix - Fatal编程技术网

R 打印颜色不正确

R 打印颜色不正确,r,plot,plotrix,R,Plot,Plotrix,我正在使用以下代码生成绘图: library(plotrix) dat_fn = "emptiness.csv" storage_fn = "final/results/emptiness_values.png" data <- read.csv(dat_fn, header = TRUE, sep = "\t") png(storage_fn) sizeplot(data$PercentEmpty, data$PercentUniform, col = data$QuestionTy

我正在使用以下代码生成绘图:

library(plotrix)

dat_fn = "emptiness.csv"
storage_fn = "final/results/emptiness_values.png"
data <- read.csv(dat_fn, header = TRUE, sep = "\t")

png(storage_fn)
sizeplot(data$PercentEmpty, data$PercentUniform, col = data$QuestionType)
legend("topleft", legend = levels(data$QuestionType), pch = "o", col = 
unique(data$QuestionType))
dev.off()

谢谢

我认为处理
sizeplot
最终会对一些点进行重新排序。您似乎没有使用
sizeplot
自动调整点大小的功能,因此我建议只使用
plot
,这样效果很好

如果您确实需要sizeplot,这里有一个简单的解决方法:

with(data, plot(PercentEmpty, PercentUniform, type = "n"))
with(subset(data, QuestionType == "a"), sizeplot(PercentEmpty, PercentUniform, col = 1, add = TRUE))
with(subset(data, QuestionType == "b"), sizeplot(PercentEmpty, PercentUniform, col = 2, add = TRUE))

您能分享您的数据吗?将
dput(数据)
粘贴到您的问题中,将为我们提供您的数据的副本/可粘贴副本。已编辑-谢谢!我无法复制您的问题-当我在您共享的数据上运行您的代码时,我得到了正确的绘图。尝试重新启动R,重新加载数据,看看是否仍然有问题。我重新启动R,重新加载数据,重新启动计算机,仍然得到相同的绘图。这很奇怪…嗯,事实上,当我放大它时,看起来我可以复制这个问题。如果我用
plot
替换
sizeplot
,效果很好。我认为,在内部,
sizeplot
正在对数据进行重新排序。
with(data, plot(PercentEmpty, PercentUniform, type = "n"))
with(subset(data, QuestionType == "a"), sizeplot(PercentEmpty, PercentUniform, col = 1, add = TRUE))
with(subset(data, QuestionType == "b"), sizeplot(PercentEmpty, PercentUniform, col = 2, add = TRUE))