【发布时间】:2022-01-13 11:13:36
【问题描述】:
我正在尝试绘制来自 dataset 的数据
我用过这个功能:
wine_red <- read.csv2("winequality-red.csv")
ggplot(wine_red, aes(x=quality, y=alcohol)) +
scale_fill_continuous(type = "viridis") +
geom_bin2d(binwidth=1)
但是这样做我得到了一个未正确排序的 y 轴:它从 10 -> 19 然后 7 -> 9
如何按正确的数字顺序对其进行排序?
【问题讨论】:
-
如果你的 y 值不是数字,就会发生这种情况,它完全按照字符应该做的排序。因此,请确保您的 y 值是数字。
-
好的,怎么做?我用
w_red[,a]<-as.numeric(w_red[,a])尝试了一个循环,但是转换得到了错误的值(0.4 变成了 5,0.56 变成了 57) -
请直接说明你的例子。您在 ggplot 中提供
wine_red作为数据,然后在您的美学中使用data,现在提到w_red作为您的数据? -
我添加了获取数据的行(并更正了第二行)
-
您需要在 read.csv 中设置分隔符和抽取器,read.csv 和 read.csv2 之间的区别应该基于语言/区域设置,其中首先使用逗号作为分隔符,点作为抽取器,而另一个使用半列作为分隔符,逗号作为抽取器。您的数据是混合的......所以无论如何使用 read.csv 您有正确的分隔符,但错误的抽取器。因此它将您的值视为字符串而不是数字。长话短说,我建议始终只使用 read.csv 并设置您的偏好:
read.csv(file, sep = ";", dec = ".")会起作用。