相关疑难解决方法(0)

ggplot2 - 在剧情之外注释

我想将样本大小值与绘图上的点相关联.我可以geom_text用来定位点附近的数字,但这很麻烦.将它们沿着图的外边缘排列会更加清晰.

例如,我有:

df=data.frame(y=c("cat1","cat2","cat3"),x=c(12,10,14),n=c(5,15,20))

ggplot(df,aes(x=x,y=y,label=n))+geom_point()+geom_text(size=8,hjust=-0.5)
Run Code Online (Sandbox Code Playgroud)

这产生了这个情节: 在此输入图像描述

我更喜欢这样的东西: 在此输入图像描述

我知道我可以创建第二个图并使用grid.arrange(这篇文章),但确定textGrobs与y轴对齐的间距会很繁琐.有更简单的方法吗?谢谢!

annotations r ggplot2

62
推荐指数
3
解决办法
6万
查看次数

具有嵌套x变量的两行上的轴标签(年份低于月份)

我想沿水平轴显示月份(缩写形式),相应的年份打印一次.我知道如何显示月份:

在此输入图像描述

今年不需要的重复使标签变得混乱.相反,我想要这样的事情:

在此输入图像描述

除了年份将 在月份以下打印.

我在轴标签上方打印了一年,因为这是我能做的最好的.这遵循annotate()函数的限制,如果它位于绘图区域之外,则会被剪裁.我知道可能的解决方法基于annotate_custom(),但我无法使它们与日期对象一起工作(我没有尝试将日期转换为数字并再次返回日期,因为它似乎比希望必要更复杂)

我想知道新的dup_axis()是否可以为此目的而被劫持.如果不是将复制的轴发送到面板的另一侧,它可以在复制的轴下面发送几行,那么可能只是设置一个轴被panel.grid.major清空并且标签设置为%b,而另一个轴将panel.grid.minor消隐,标签设置为%Y.(另外一个挑战是年标签将转移到10月而不是1月)

这些问题是相关的.但是,就我所知,annotate_custom()功能和textGrob()功能与日期不相符.

如何-可以-I-附加注释-低于最x轴合GGPLOT2

显示文本-低于该积生成逐GGPLOT2

数据和基本代码如下:

    library("ggplot2")
    library("scales")
    ggplot(data = df, aes(x = Date, y = value)) + geom_line() +
        scale_x_date(date_breaks = "2 month", date_minor_breaks = "1 month", labels = date_format("%b %Y")) +
        xlab(NULL)

    ggplot(data = df, aes(x = Date, y = value)) + geom_line() +
        scale_x_date(date_minor_breaks = "2 month", labels = date_format("%b")) +   
        annotate(geom = …
Run Code Online (Sandbox Code Playgroud)

r date ggplot2 axis-labels

30
推荐指数
3
解决办法
4205
查看次数

创建自定义geom以计算摘要统计信息并在*绘图区域外显示它们

我是R包EnvStats的创建者.

有一个我经常使用的函数叫做stripChart.我刚刚开始学习ggplot2,过去几天一直在研究哈德利的书,温斯顿的书,StackOverflow和其他资源,试图创造一个geom近似于它的东西stripChart.我无法弄清楚如何geom计算汇总统计数据和测试结果,然后将它们放在x轴刻度线下方以及绘图顶部(绘图区域外).以下是使用内置数据集的简单示例mtcars:

library(EnvStats)
stripChart(mpg ~ cyl, data = mtcars, col = 1:3, 
  xlab = "Number of Cylinders", ylab = "Miles per Gallon", p.value = TRUE)
Run Code Online (Sandbox Code Playgroud)

以下是尝试重现stripChart的大部分功能的geom的早期草稿:

geom_stripchart <- 
function(..., x.nudge = 0.3, 
  jitter.params = list(width = 0.3, height = 0), 
  mean.params = list(size = 2, position = position_nudge(x = x.nudge)), 
  errorbar.params = list(size = 1, width = 0.1, 
  position = position_nudge(x = x.nudge)), 
  n.text = TRUE, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 envstats

6
推荐指数
1
解决办法
491
查看次数

标签 统计

ggplot2 ×3

r ×3

annotations ×1

axis-labels ×1

date ×1

envstats ×1