[英]set minimum limit for violin plot ggplot
我想设置小提琴图的最小范围,类似于此问题: 仅设置ggplot的下限
为了这:
p <- ggplot(somedf, aes(factor(user1), pq)) + aes(ymin = -50)
p + geom_violin(aes(fill = user1))+ aes(ymin=-50)
我尝试添加
+ expand_limits(y=-50)
和
+ aes(ymin = -50)
设置下限无效。
这是导致相同问题的示例数据框:
structure(list(pq = c(-20L, -12L, 10L, -13L, 11L, -16L), time = c(1214.1333,
1214.1833, 1214.2667, 1214.2833, 1214.35, 1214.5167), pq.1 = c(-20L,
-12L, 10L, -13L, 11L, -16L), time.1 = c(1214.1333, 1214.1833,
1214.2667, 1214.2833, 1214.35, 1214.5167), time.2 = c(1214.1333,
1214.1833, 1214.2667, 1214.2833, 1214.35, 1214.5167), pq.2 = c(-20L,
-12L, 10L, -13L, 11L, -16L), user1 = structure(c(1L, 1L, 2L,
1L, 2L, 1L), .Label = c("someguy3", "someguy4", "someguy6", "someguy4",
"someguy5", "someguy6"), class = "factor"), pq.3 = c(-20L, -12L, 10L,
-13L, 11L, -16L), time.3 = c(1214.1333, 1214.1833, 1214.2667,
1214.2833, 1214.35, 1214.5167), user1.1 = structure(c(1L, 1L,
2L, 1L, 2L, 1L), .Label = c("someguy3", "someguy4", "someguy6",
"someguy4", "someguy5", "someguy6"), class = "factor")), .Names = c("pq",
"time", "pq.1", "time.1", "time.2", "pq.2", "user1", "pq.3",
"time.3", "user1.1"), row.names = c(565L, 566L, 568L, 569L, 570L,
574L), class = "data.frame")
如果您添加对geom_blank()
的调用,则ggplot将注意aes()
指令。
## A reproducible example
library(ggplot2)
p <- ggplot(mtcars, aes(factor(cyl), mpg))
## This doesn't work:
p + aes(ymin = -10) + geom_violin()
## But this does:
p + aes(ymin = -10) + geom_violin() + geom_blank()
(注意:至少在此示例中, expand_limits(y = -10)
可以伴随或不伴随对geom_blank()
调用。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.