r - R:ggplot2 轴显示两个范围
问题描述
我正在使用带有 facet_wrap() 的 ggplot,如下所示:
plot <- ggplot(x, aes(Result, values, fill=Month))+
geom_bar(stat="identity", position=position_dodge())
plot + facet_wrap(~Month)
如您所见,该图显示了两个不同的月份范围。
输入(x)是:
structure(list(Result = structure(c(2L, 1L, 2L, 1L), .Label = c("Negative",
"Positive"), class = "factor"), values = c("100", "0", "66.6666666666667",
"33.3333333333333"), Month = structure(c(2L, 2L, 1L, 1L), .Label = c("January",
"February"), class = "factor")), class = "data.frame", row.names = c(NA,
-4L))
我该如何解决?
解决方案
看起来values
在某些时候被强制转换为一个因素,levels 0, 100, 33.33, 66.66
。我可以使用以下代码复制该图:
df <- tibble(result = c("neg", "pos", "neg", "pos"),
values = factor(c(33.33, 66.66, 0, 100),
levels = c(0, 100, 33.33, 66.66)
),
month = factor(c("jan", "jan", "feb", "feb"),
levels = c("jan", "feb")
)
)
ggplot(df, aes(result, values, fill=month)) +
geom_bar(stat="identity", position=position_dodge()) +
facet_wrap(~ month)
您只需要转换values
回数字向量。请注意,不返回级别的整数表示而不是您想要的数字,即执行类似as.numeric(as.character(values))
and not的操作as.numeric(values)
:
df %>% mutate(values = as.numeric(as.character(values))) %>%
ggplot(aes(result, values, fill=month)) +
geom_bar(stat="identity", position=position_dodge()) +
facet_wrap(~ month)
推荐阅读
- python - 如何一次运行批处理 5 个文件,然后继续处理列表中的下 5 个文件?
- javafx - 任务有时会保持“锁定”状态
- checkbox - 如何在 Yii2 上的复选框中添加 onchange 侦听器以在更改时提交表单
- python-3.x - 杀死独立的python线程
- matlab - 在使用 RANSAC 算法之前,我们如何消除不属于目标区域的特征?
- javascript - 边缘、悬停和单击
- excel - xlUp - 选定值 1 - 和 xlDown - 选定值 4121 - vba fordrop downlist 而不是 -12
- java - 在组归约上按键触发嵌套结构的错误序列化
- html - Flexbox row-reverse 打破 IE 11 上的对齐项
- unit-testing - 为什么我不能在 jest.Mock 中模拟一个函数(必须在 spyOn 上使用 .mockImplementation)?