- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力在我用 R 中的 ggplot2 制作的图表中获得正确的变量排序。
假设我有一个数据框,例如:
set.seed(1234)
my_df<- data.frame(matrix(0,8,4))
names(my_df) <- c("year", "variable", "value", "vartype")
my_df$year <- rep(2006:2007)
my_df$variable <- c(rep("VX",2),rep("VB",2),rep("VZ",2),rep("VD",2))
my_df$value <- runif(8, 5,10)
my_df$vartype<- c(rep("TA",4), rep("TB",4))
year variable value vartype
1 2006 VX 5.568517 TA
2 2007 VX 8.111497 TA
3 2006 VB 8.046374 TA
4 2007 VB 8.116897 TA
5 2006 VZ 9.304577 TB
6 2007 VZ 8.201553 TB
7 2006 VD 5.047479 TB
8 2007 VD 6.162753 TB
ggplot(my_df,
aes(x=variable, y=value, fill=vartype, order=vartype)) +
# adding or removing the aesthetic "order=vartype" doesn't change anything
geom_bar() +
facet_grid(. ~ year) +
coord_flip()
order=vartype
审美被忽略了。
my_df$variable <- factor(
my_df$variable,
levels=rev(sort(unique(my_df$variable))),
ordered=TRUE
)
my_df$vartype <- factor(
my_df$vartype,
levels=sort(unique(my_df$vartype)),
ordered=TRUE
)
my_df <- within(my_df,
vartype <- factor(vartype,
levels=names(sort(table(vartype),
decreasing=TRUE)))
)
order=vartype
被忽略。尽管如此,它似乎在一个不相关的问题中起作用:
http://learnr.wordpress.com/2010/03/23/ggplot2-changing-the-default-order-of-legend-labels-and-stacking-of-data/
最佳答案
这与关系不大ggplot ,而是一个关于生成变量排序以用于重新排序因子水平的问题。这是您的数据,使用各种功能实现以获得更好的效果:
set.seed(1234)
df2 <- data.frame(year = rep(2006:2007),
variable = rep(c("VX","VB","VZ","VD"), each = 2),
value = runif(8, 5,10),
vartype = rep(c("TA","TB"), each = 4))
variable
和
vartype
是因素。如果不是因素,
ggplot()
将强制他们,然后你会得到按字母顺序排列。我以前说过这句话,毫无疑问会再说一遍;将您的数据转换成正确的格式
第一 在开始绘图/进行数据分析之前。
> with(df2, order(vartype, variable))
[1] 3 4 1 2 7 8 5 6
vartype
获得订单首先,然后才由
variable
在
vartype
的级别内.如果我们使用它来重新排序
variable
的级别我们得到:
> with(df2, reorder(variable, order(vartype, variable)))
[1] VX VX VB VB VZ VZ VD VD
attr(,"scores")
VB VD VX VZ
1.5 5.5 3.5 7.5
Levels: VB VX VD VZ
attr(,"scores")
位并专注于级别)。这有正确的顺序,但
ggplot()
将它们从下到上绘制,你想要从上到下。我对
ggplot()
不够熟悉要知道这是否可以控制,因此我们还需要使用
decreasing = TRUE
来颠倒顺序在调用
order()
.
## reorder `variable` on `variable` within `vartype`
df3 <- transform(df2, variable = reorder(variable, order(vartype, variable,
decreasing = TRUE)))
ggplot(df3, aes(x=variable, y=value, fill=vartype)) +
geom_bar() +
facet_grid(. ~ year) +
coord_flip()
关于r - 使用 coord_flip() 的 ggplot2 条形图中的图例条目顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7299440/
我创建了一个组条形图(img 1)并使用了 coord_flip()移动 将条形分组到 y 轴。我注意到 coord_flip()还会重新排列每个条在组中的显示方式。 例如。在 img 1 中,条形图
我一直有一个烦人的问题,我无法找到具体的解决方案。我正在尝试创建一个水平分组条形图;我想要的只是采用标准的垂直条形图并将其向右旋转 90 度。当我使用 coord_flip 时,它会将绘图向右旋转,但
我想要一个箱线图,在我的直方图下方显示相同的分布。 下面的代码几乎可以工作,但是 coord_flip()正在应用于所有层,而不仅仅是 geom_boxplot层。 plot1<-ggplot(new
来自 dbv 的数据示例: gender Sektion 1 m 5 2 m 5 3 w 3B 4 w 3B 5
翻转坐标后,如何减少窄条和面板边框之间的空间?使用数据框 df 和 ggplot命令,底部栏和刻度线之间有很多空白空间(同样在“供应商”栏上方有一个宽阔的空间)。 df <- data.frame(x
我收到一个错误,似乎是通过使用 annotation_logticks() 组合起来的和 coord_flip()在同一个情节上。例如: ggplot(mtcars, aes(x=mpg, y=dis
我有一个包装 ggplot 图的简单函数: library(ggplot2) myGraph % return() } 而且我想向该函数添加一个参数,以便我可以翻转或不翻转轴。一个 bool
以下是关于体育促进干预措施有效性的假设荟萃分析的一些示例数据,我想为其创建森林图: example.df = data.frame(Author = c("McAuliffe et al.", "Pa
我正在努力在我用 R 中的 ggplot2 制作的图表中获得正确的变量排序。 假设我有一个数据框,例如: set.seed(1234) my_df with(df2, order(vartype, v
美好的一天 在不使用 coord_flip() 的情况下,有没有办法通过在 aes() 中交换位置 x 和 y 来绘制翻转的正态分布?我试过如下。 df3 <- data.frame(x=seq(-6
我正在尝试生成一个图表,其中包含来自多个国家/地区的相同回归的估计值和置信区间。我使用 dplyr 运行回归的 group_by(country) ,然后我用 broom 将所有结果聚合到一个数据框中
我想用 gganim 制作一个动画条形图包裹。条形图的坐标应该通过 coord_flip 翻转(即水平条)和 x 轴应根据条的长度通过 view_follow 变得灵活. 考虑以下示例数据: # Cr
我有一些来自 ggplot 的奇怪行为。这是一个MWE: the_data <- data.frame( myx <- 1:10, lower <- rnorm(10,-5,1), me
我正在尝试创建一个具有翻转坐标的多面图,其中一个且仅一个轴允许针对每个面而变化: require(ggplot2) p : p <- qplot(hwy, displ, data = mpg) p +
我试图将 x 轴移动到顶部:scale_x_discrete (position = "top") 但它指示错误。有人帮帮我吗? require(ggplot2) a <- c("ENE","FEB"
曾经完美运行的旧代码不再适用于 0.9.3。该问题与刻面、自由尺度和坐标翻转的使用有关。 这是一种重现的方法: 数据集:d.csv: "Priority","Owner","Project" "Med
我是一名优秀的程序员,十分优秀!