如何使用具有离散轴值的geom_rect [英] how do I use geom_rect with discrete axis values

查看:179
本文介绍了如何使用具有离散轴值的geom_rect的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想绘制矩形,但我有一个x轴,它是离散值。如何将xmin和xmax值设置为离散值之间的点?

I would like to plot rectangles but I have an x axis that's discrete values. How do I set the xmin and xmax values to start at a point between the discrete values?

library(ggplot2)
df <- data.frame(x = c("a","b","c"), y = c(1,2,3))
ggplot(data = df) + geom_rect(data = NULL, aes(xmin = "b", xmax = "c", ymin = 1.5, ymax = 2.5))

这段代码绘制了一个矩形,但我想稍微向左移动它。我希望能够设置xmin =b-0.3和xmax =b+0.3,如果有意义的话。

This code plots a rectangle but I'd like to move it to the left a little. I kindof want to be able to set xmin = "b"-0.3 and xmax = "b"+0.3, if that makes sense.

推荐答案

您可以尝试:

You can try:

ggplot(data = df) +
  geom_rect(data = df, aes(x = x, y=y), xmin = as.numeric(df$x[[2]]) - 0.3,
                                        xmax = as.numeric(df$x[[3]]) + 0.3,
                                        ymin = 0, ymax = 2)

这就好像你调用xmin和xmax等在 aes 调用之外,你可以使用任何你想要的。因素水平被用于绘制出来,因此 as.numeric 将确保您获得正确的结果。

This works, as if you call xmin and xmax etc outside of the aes call, you can use whatever you want. The factor levels are used in the plot to plot them out, so as.numeric will make sure you get the right one.

这篇关于如何使用具有离散轴值的geom_rect的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆