当前位置: 首页 > 知识库问答 >
问题:

绘制具有指示意义的“双”条形图

松兴邦
2023-03-14

我想为三类数据绘制一个“双”条形图,并显示基于Wilcox检验的两个“双”条形图的显著性水平。

运行下面的代码,我没有看到反映在y轴上的计数,相反,所有柱都处于相同的高度。

library(dplyr) 
library(ggplot2)
library(ggpubr)
library(reshape2)
theme_set(theme_pubclean())

data = data.frame("cut" = c("type 1","type 1","type 2","type 2","type 3","type 3"), "counts" = c(0.6844,0.5867,0.6297,0.6383,0.7134,0.7075), "color" = c("c","d","c","d","c","d"))
data

df <- data %>%
  filter(color %in% c("c", "d")) %>%
  group_by(cut, color) %>%
  summarise(counts = n()) 

ggdotchart(df, x = "cut", y ="counts",
           color = "color", palette = "jco", size = 3, 
           add = "segment", 
           add.params = list(color = "lightgray", size = 1.5),
           position = position_dodge(0.3),
           ggtheme = theme_pubclean()
)

我试图制作的情节看起来像这样:https://drive.google.com/open?id=1EndiF-sCtXFyUOAPIToRY5hqjp97b1Px

感谢您的帮助:1.编辑我的代码,使其显示实际计数值2.为绘图添加重要性

共有1个答案

冀永寿
2023-03-14

这是你要找的吗?

data %>%
  spread(color, counts) %>%
  mutate(
    lab_pos = pmax(c, d) + .07,
    lab = if_else(cut == 'type 3', '*', 'ns')
  ) %>%
  gather(color, counts, c:d) %>%
  ggplot(aes(
    x = cut,
    y = counts,
    color = color,
    group = color
  )) +
  geom_col(
    position = position_dodge(.4),
    color = 'white',
    width = .05
  ) +
  geom_point(
    position = position_dodge(.4),
    size = 3
  ) +
  geom_text(aes(
      y = lab_pos,
      label = lab
    ),
    check_overlap = TRUE,
    color = rgb(.2, .2, .2)
  ) +
  ylim(0, 1)
 类似资料:
  • 目前,b1和b2相互重叠。如何像这样分别绘制它们:

  • 我是数据可视化方面的新手。我正在练习海运,我正在尝试用这个数据帧绘制一个条形图。我希望图表有3条在每个符号上,然而,输出只有1条在每个符号上。我能知道怎么修吗? 数据帧的一部分... 代码如下所示: 输出如下:

  • 我有一个名为pct的数据集 我想使用ggplot2或绘图包获得正条形图和负条形图。 给定下表中的数据集 我想得到这样的东西

  • 我有一个直方图,每个面元上有4个不同的对象,它们现在相互堆叠在一起。相反,我需要在同一个直方图框中并排绘制不同的对象(类似于https://matplotlib . org/3 . 1 . 1/gallery/statistics/histogram _ multi hist . html中的左上图): ,等在同一个样本内绘制不同标准的对象(和)。我看的所有示例都与我需要的略有不同,找不到正确的方

  • 我有一些关于点为双类型的多边形的问题...我要做的是,给定点,创建多边形,然后测试1个具体点是否在多边形内。 所以我知道在Java中有一个类,叫做多边形,用得像这样:(三角形) 但我的“多边形”必须是“双”类型,而不是“int”(简单示例) 在我的项目中,我真的不需要在小程序或类似物上绘制它,我只需要计算点是否在里面。 所以我的问题是: 有没有什么方法可以用双坐标来处理多边形,可以计算这个点(双坐

  • 我的熊猫有一张桌子。 我想绘制一个总订单与频率的条形图,频率值显示在每个条形的顶部。 我正在运行这三个代码。代码1: 代码2:(用于循环) 代码3 但是当我运行代码时,它会向我显示错误,那 属性错误:“系列”对象没有属性“补丁” 任何想法为什么会发生这种情况,以及如何删除它?提前致谢。