gpt4 book ai didi

r - ggplot 在 x 轴上显示表达式

转载 作者:行者123 更新时间:2023-12-04 14:09:59 27 4
gpt4 key购买 nike

下面,我有绘制分组条形图的 R 代码。

group_name = c('A_1x', 'A_1x', 'A_2x', 'A_2x', 'A_3x', 'A_3x', 'A_4x', 'A_4x')

mydata2 <- data.frame(mygroup = group_name,
mysubgroup = factor(c("Yes", "No"),
levels = c("Yes", "No")),
value = c(60,40,90,10,55,45,88,12))


ggplot(mydata2, aes(mygroup, value, fill = mysubgroup)) +
geom_bar(position = "dodge", width = 0.5, stat = "identity")+
coord_flip()

目前,情节如下所示。但是,我想在 x 轴上显示表达式,如下图所示。

enter image description here

我试过这个:
group_name = c(expression(A[1*x]),expression(A[1*x]),
expression(A[2*x]),expression(A[2*x]),
expression(A[3*x]),expression(A[3*x]),
expression(A[4*x]),expression(A[4*x]))

但它给出了以下错误:
Error in as.data.frame.default(x[[i]], optional = TRUE) : 
cannot coerce class ""expression"" to a data.frame

如何解决?

最佳答案

这是一个工作示例 - 我更改了 group_name到 4 个元素而不是 8 个并手动将它们添加到 ggplot表达。问题是表达式类型不能是 data.frame 的列名。 .这就避开了这个问题。

library(ggplot2)
group_name = c('A_1x', 'A_1x', 'A_2x', 'A_2x', 'A_3x', 'A_3x', 'A_4x', 'A_4x')
mydata2 <- data.frame(mygroup = group_name,
mysubgroup = factor(c("Yes", "No"),
levels = c("Yes", "No")),
value = c(60,40,90,10,55,45,88,12))

group_name = c(expression(A[1*x]),
expression(A[2*x]),
expression(A[3*x]),
expression(A[4*x]))

ggplot(mydata2, aes(mygroup, value, fill = mysubgroup)) +
geom_bar(position = "dodge", width = 0.5, stat = "identity")+
coord_flip() +
scale_x_discrete(labels=group_name) # Adding the labels here

关于r - ggplot 在 x 轴上显示表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37758050/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com