R GGPLOT从一个数据框中的数据中绘制,使用数据框架标签轴ticks ticks ticks ticks ticks tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick tick?
我有2个数据集。在data
中,b
被编码为数字值。 data1
表示b
是chr data的原始内容。
我想使用数据
的数字数据绘制一个框图,但是从b
in data1
中拉出y轴tick标签。 。这可能吗?
玩具数据:
data <- data.frame(a = c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3),
b = c(10,10,11,11,12,12,12,13,13,13,14,14,14,15,15),
c = c('x','y','y','x','y','y','x','y','y','x','y','y','x','x','y'))
data1 <- data.frame(a = c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3),
b = c('never','never','rare','rare','some','some','some','most','most','most','often','often','often','always','always'),
c = c('x','y','y','x','y','y','x','y','y','x','y','y','x','x','y'))
我尝试使用scale_y_discrete
:
ggplot(data,aes(x = as.factor(a), y = b, fill = c))+
geom_boxplot()+
scale_y_discrete(data1$b,labels=unique(data1$b))
作为您可以看出,Y轴tick标签未按预期显示。
为了进一步参考,这将用于更大的数据集,作为闪亮应用程序的一部分。该图形成了一个反应元素,因此我需要避免对实际标签名称进行硬编码。
感谢您的帮助。
I have 2 data sets. In data
, b
is encoded as numeric values. data1
represents the original in which b
is chr data.
I would like to plot a box plot using the numeric data from data
but pull the y-axis tick labels from the chr data b
in data1
. Is this possible?
Toy data:
data <- data.frame(a = c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3),
b = c(10,10,11,11,12,12,12,13,13,13,14,14,14,15,15),
c = c('x','y','y','x','y','y','x','y','y','x','y','y','x','x','y'))
data1 <- data.frame(a = c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3),
b = c('never','never','rare','rare','some','some','some','most','most','most','often','often','often','always','always'),
c = c('x','y','y','x','y','y','x','y','y','x','y','y','x','x','y'))
My attempt to achieve the outcome using scale_y_discrete
:
ggplot(data,aes(x = as.factor(a), y = b, fill = c))+
geom_boxplot()+
scale_y_discrete(data1$b,labels=unique(data1$b))
As you can see, the y-axis tick labels are not displaying as anticipated.
For further reference, this is to be used on a far larger data set as part of a Shiny application. The plot forms a reactive element and so I need to avoid hard-coding the actual label names.
Your help is appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于您的
b
变量是连续的,因此必须使用scale_y_continous
。对于您的示例数据scale_y_continouul(labels = unique(data1 $ b))
会起作用,我个人建议使用一个命名的标签矢量,该标签较少,并且将标签分配给数字值:< img src =“ https://i.sstatic.net/vzq5c.png” alt =“”>
As your
b
variable is continuous you have to usescale_y_continuous
. While for your example datascale_y_continuous(labels = unique(data1$b))
will work, personally I would suggest to use a named vector of labels which is less error prone and assigns labels to numeric values: