我的数据框如下:

         test     result
    1      1    26.87778
    2      1    24.52598
    3      1    24.02202
    4      1    20.32632
    5      1    22.00618
    6      2    19.84013
    7      2    19.68983
    8      2    19.84013
    9      2    19.23892
    10     2    19.23892
    11     3    34.36430
    12     3    33.28196
    13     3    33.82313
    14     3    33.82313
    15     3    32.47020
    16     4    25.55169
    17     4    26.90442
    18     4    25.40138
    19     4    24.19895
    20     4    25.85230
    21     4    25.70199
    22     4    24.95047
    23     5    18.64646
    24     5    18.64646
    25     5    17.80653
    26     5    18.64646
    27     5    18.31049


我正在尝试使用以下代码制作带有隐藏结果的条形图:

    ggplot(p3, aes(x = test, y = result))+ geom_bar(position="dodge", stat="identity")


但它根本不起作用。我不明白为什么它不起作用,因为我之前使用了相同的代码并且它起作用了。

最佳答案

ggplot(p3, aes(x = test, y = result, group = result)) +
    geom_bar(position="dodge", stat="identity")


如果将group参数更改为color,则可以看到正在发生的情况。

ggplot(p3, aes(x = test, y = result, color = result)) +
    geom_bar(position="dodge", stat="identity")


编辑评论:

好像有奇数个组,因为有。第4组中提供的数据中包含7个元素。第3组有5个,但其中2个相同。该图正确显示了高度,并且将类似的元素分组在一起。就像您在每个组上调用unique一样。

我认为绘图:

ggplot(p3, aes(x=test, y=result, group=result, color=result)) +
  geom_bar(position='dodge', stat='identity')


显示得很好。至于每个组有5个元素,事实并非如此。第4组有7个。要查看您的描述,您可以执行以下操作:

ggplot(p3, aes(x=as.integer(row.names(p3)), y=result, fill=factor(test))) +
  geom_bar(position='dodge', stat='identity')

08-03 18:57