R 从系数转换为数值时,箱线图显示不正确

R 从系数转换为数值时,箱线图显示不正确,r,ggplot2,boxplot,R,Ggplot2,Boxplot,我的图形在不使用比例的情况下正确显示。我想让它看起来更好,所以我将因子转换为数值,然后使用scale_x_continuous。但是,当我从factor转换为numeric()时,图形看起来不正确。如果不转换为数字,我就不能使用比例。请运行下面的示例代码,包括和不包括这些行(main$U,您必须在调用geom\U boxplot时指定组,并且要保留图例,您可以使用颜色=系数(U)(即,将U转换回来)。为了不丢失关于具有相同x值的组的信息,我认为最好先创建一个新的分组列。您获取所有唯一的U对和ty

我的图形在不使用比例的情况下正确显示。我想让它看起来更好,所以我将因子转换为数值,然后使用scale_x_continuous。但是,当我从factor转换为numeric()时,图形看起来不正确。如果不转换为数字,我就不能使用比例。请运行下面的示例代码,包括和不包括这些
行(main$U,您必须在调用
geom\U boxplot
时指定
,并且要保留图例,您可以使用
颜色=系数(U)
(即,将U转换回来)。为了不丢失关于具有相同x值的组的信息,我认为最好先创建一个新的分组列。您获取所有唯一的
U
对和
type
,并根据哪些行属于这些对创建一个新变量

main$U <- as.character(main$U)
main$type <- as.character(main$type)

grp_keys <- unique(as.matrix(main[, c("U", "type")]))
grp_inds <- 1:nrow(grp_keys)

main$grps <- apply(main, 1, function(x) {
  grp_inds[colSums(as.character(x[c("U", "type")]) == t(grp_keys)) == length(c("U", "type"))]
  })

main$U你能描述一下你想要它到底是什么样子吗?现在你有了箱线图x轴上的温度,这通常不是箱线图的使用方式(它们将一个离散变量与一个连续变量联系起来)。我看到
scale\U x\U continuous
按预期改变了限制。@CalumYou,如果你没有线条运行(main$U非常感谢。你再次救了我。这正是我所期待的情节。谢谢。很高兴它有帮助!:)x轴现在看起来很好,但它似乎缺少一些数据集。请看没有我上面提到的两行的原始图表。谢谢。你能帮我解释这行“函数(x)grp_inds[colSums(as.character)(x)吗[c(1,3)]==t(grp_键))==2])。清楚地理解这条线将有助于我连接箱线图中间值,而不会出现错误“几何路径:每个组仅由一个观察值组成。您需要调整组美学吗?”。谢谢。这条线计算每一行的U和类型等于哪个因子(请记住之前我们为所有U和type的唯一组合创建了一个新因子)。因此,现在我们只想为每一行添加它所属的唯一组合。运行该操作时是否会出错?
main$U <- as.character(main$U)
main$type <- as.character(main$type)

grp_keys <- unique(as.matrix(main[, c("U", "type")]))
grp_inds <- 1:nrow(grp_keys)

main$grps <- apply(main, 1, function(x) {
  grp_inds[colSums(as.character(x[c("U", "type")]) == t(grp_keys)) == length(c("U", "type"))]
  })
main$U <- as.numeric(as.character(main$U))
ggplot(main, aes(U, V,color=type)) + 
  geom_boxplot(aes(group = grps, color = type), width=20/length(unique(main$type)), size=.3, position="identity") +
  scale_x_continuous(name="Temperature", limits=c(0, 160))