我正在为变量的不同类别创建直方图,并将它们分隔为facet_wrapscales = 'free'.这适用于大多数类别,但对于其中一个类别,条形图永远不会超过1,因此比例以0.25为间隔中断,这对直方图没有意义.

有没有一种方法可以设置曲线图,使中断之间的间隔永远不会低于1?在其他一些类别中,栏高达300,所以我不能手动设置breaks.

我不能分享数据,但做了一个数据框示例:

class = c(rep(1,200), rep(2,200), rep(3,200))
x = c(rnorm(200, mean = 5, sd = 1), rnorm(200, 5, 4), rnorm(200, 5, 9))
df = data.frame(x, class)
df %>% ggplot(aes(x = x))+
  geom_histogram(color = 'black', fill = 'steelblue', binwidth = 1)+
  facet_wrap(~class, scales = 'free')

生成以下直方图: example histogram

假设在本例中,我不希望刻度间隔小于10(因此,类2和类3的标度间隔应该是breaks = seq(0,100,10),但希望通过白化来影响类==1的标绘的比例.有什么方法可以做到这一点吗?

推荐答案

为此,您可以使用ggh4x包中的facetted_pos_scales函数.因此,对于您的玩具示例:

library(ggplot2)
library(ggh4x)
class = c(rep(1,200), rep(2,200), rep(3,200))
x = c(rnorm(200, mean = 5, sd = 1), rnorm(200, 5, 4), rnorm(200, 5, 9))
df = data.frame(x, class)
df |> ggplot(aes(x = x))+
  geom_histogram(color = 'black', fill = 'steelblue', binwidth = 1)+
  facet_wrap(~class, scales = 'free') + 
  facetted_pos_scales(
    y = list(
      class %in% c("2","3") ~ scale_y_continuous(breaks = seq(0,100,10))
      )
  )

enter image description here

R相关问答推荐

使用spatVector裁剪网格数据时出现的问题

ggplot 2中的地块底图(basemaps_gglayer()不起作用)

基于shiny 应用程序中的日期范围子集xts索引

更改编号列表的 colored颜色

在发布到PowerBI Service时,是否可以使用R脚本作为PowerBI的数据源?

过滤器数据.基于两列的帧行和R中的外部向量

r替换lme S4对象的字符串的一部分

如何优化向量的以下条件赋值?

按时间顺序对不同事件进行分组

如何将一列中的值拆分到R中各自的列中

将数据集旋转到长格式,用于遵循特定名称模式的所有变量对

我如何使用tidyselect来传递一个符号数组,比如Pivot_Long?

有没有办法将基于每个值中出现的两个关键字或短语的字符串向量重新编码为具有这两个值的新向量?

SHILINY中DT列的条件着色

自定义交互作用图的标签

按组使用dummy r获取高于标准的行的平均值

R中的Desolve:返回的导数数错误

将Geojson保存为R中的shapefile

按顺序将地块添加到列表

Gggvenn为Venn增加了不存在的价值