2017-08-31 64 views
1

我有以下的伪数据:更改轴刻度为“箱”中ggplot

col1 <- c(1:4, 1:4, 1:4, 1:4) 
col2 <- c(168, 2, 40, 12, 2, 60, 16, 3, 70, 20, 15, 11, 200, 150, 1, 100) 
col3 <- c(2:5, 2:5, 2:5, 2:5) 

dummy_data <- cbind(col1, col2, col3) 
dummy_data <- as.data.frame(dummy_data) 


ggplot(dummy_data, aes(col1, col3, size = col2))+ 
    geom_jitter() 

它创建了一个jitterplot其中x轴的刻度是“广”,在这个意义上,抖动的数据点在剧情中有更大的空间可以覆盖。

是否有可能创建某种“框”或行将覆盖此范围,as in this picture?我希望范围对观众非常清楚。

+0

如果你不介意花括号,你可能想检查这个问题:https://stackoverflow.com/questions/7001799/ggplot2-curly-braces-on-an-axis – useR

+0

谢谢!很高兴能够从括号和矩形中进行选择! – Haakonkas

回答

1

试试这个:

ggplot(dummy_data, aes(x = col1))+ 
    geom_jitter(aes(y = col3, size = col2)) + 
    geom_rect(data = data.frame(x = c(1, 2, 3, 4)), 
      aes(xmin = x - 0.5, xmax = x + 0.5, ymin = 1, ymax = 1.5), 
      col = "black", fill = NA, inherit.aes = F) 

ggplot

您可以通过 “ymin的” & “YMAX” 向上/向下移动矩形。

+0

谢谢!这工作完美。 – Haakonkas