ggplot2 geom_rect图小麻烦

时间:2015-09-04 22:33:31

标签: r ggplot2

我尝试制作geom_rect图表,但我遇到了一些问题。这是我的代码:

my_dat <- data.frame(xmin = c(0, 2, 0.1, 0, 0.1, 5, 2, 0.1, 0, 0 ), 
                     xmax = c(0, 10, 1, 0, 5, 10, 10, 2, 0, 0), 
                     ymin=c(10, 10, 10, 5, 0, 0, 0, 0, 0, 0), 
                     ymax = c(20,20, 20, 15, 20, 0, 0, 0, 0, 0), 
                     fill = c("A", "B", "C", "D", "E", "F", "G", "H", "H", "I"))

library(ggplot2)

g <- ggplot(my_dat,(aes(alpha=1/3))) + 
      geom_rect(aes(xmin = xmin -1 , xmax = xmax, 
                                    ymin = ymin -1, ymax = ymax, fill = fill))
g

这就是我最终的目标。

enter image description here

问题在于我无法修复这些值,因为我无法找到使方块适合的方法,因为我不确定如何重新定位其他坐标系而不是使用"ymin -1""xmin -1"而且它正在搞乱定位。

此外,我在两个轴上都有标记问题,并且alpha=1/3在图例中显示。

1 个答案:

答案 0 :(得分:0)

也许你将不同的坐标传递给ggplot而不是你认为的那样?

这是你的意图吗?

d <- data.frame(xmin = c( 0,  2, 0.1,  0, 0.1,  5,  2, 0.1, 0, 0),
                ymin = c( 0, 10,   1,  0,   5, 10, 10,   2, 0, 0), 
                xmax = c(10, 10,  10,  5,   0,  0,  0,   0, 0, 0),
                ymax = c(20, 20,  20, 15,  20,  0,  0,   0, 0, 0),
                fill = c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J"))

ggplot(d) + geom_rect(aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax, fill = fill))  

它使矩形在(0,0) - (10,20)区域内保持良好状态。

enter image description here

至于alpha值,也许这样的事情会有所帮助:

ggplot(d) + geom_rect(aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax, fill = fill),
                      alpha = 1/3)

导致

enter image description here

好的,使用作为基础我设法绘制了我想要的数据:

d <- data.frame(xmin = c( -0.1,  2, 0.1,  -0.2, 0.1,  5,  2, 0.1, -0.3, -0.4),
                ymin = c( 10,  10,   10,  5,   -0.1, -0.2, -0.3,  -0.4, -0.5, -0.6), 
                xmax = c(0, 10,  1,  0,   5,  10,  10,   2, 0, 0),
                ymax = c(20, 20,  20, 15,  20,  0,  0,   0, 0, 0),
                fill = c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J"))

ggplot(d) + geom_rect(aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax, fill = fill), alpha=1/3)

刚刚更改了一些值并且:

enter image description here