【问题标题】:Reorder legend and bars for grouped bar chart为分组条形图重新排序图例和条形图
【发布时间】:2019-03-26 18:26:38
【问题描述】:

output使用 Rmarkdown 打印到 PDF。

我创建了一个宏函数,但在更正分组条形图的图例顺序时遇到问题。

创建的数据表有 4 列。 1- 地点:(西班牙、葡萄牙、乌克兰) 2- 同意级别:(非常同意、同意、不同意、非常不同意、缺失) 3- 与协议级别对应的 ID 级别(1、2、3、4 和 0 表示缺失) 4- 计数值

我想创建一个分组条形图(按位置分组)并绘制每个协议级别的计数值。

注意!!由于这是一个宏功能,因此协议级别有时会更改为满意度级别(非常不满意、不满意、满意、非常满意)。这就是我包含 id 数字级别的原因。

我的问题是我无法按顺序排列我的图例/分组条形图。

我可以使用 ID 级别进行排序,但是我的图例只显示无用的数字。我需要图例来显示数字代表什么(1= 强烈同意,2= 同意分机)

有没有办法按 id (0,1,2,3,4) 对我的关卡进行排序但显示它们的值?

我已经尝试过 forcats、reorder、factor/levels、groupby ......但似乎仍然没有得到正确的输出

附件是我当前输出的一些图像,但如图所示,我仍然需要更正关卡/图例顺序。

macrofunction <- function(df_table) {
plots = ggplot(df_table, aes(x=location, y=as.numeric(df_table$Value), fill=levels)) +
   geom_bar(stat="identity", position=position_dodge()) }

【问题讨论】:

  • 知道以下是否正确:scale_fill_discrete(name="legend title", breaks=levels(df_table$id), labels = df_table$levels)

标签: r r-markdown refactoring forcats


【解决方案1】:

对于任何感兴趣的人,我采取了不同的方法来解决问题。 我最终使用 facet_wrap 来解决这个问题。

plots = ggplot(df_table, aes(x=id, y=as.numeric(df_table$Value), fill=Response)) + geom_bar(stat="identity", position=position_dodge()) + facet_wrap(~位置) +

【讨论】:

    猜你喜欢
    • 2014-07-07
    • 1970-01-01
    • 2019-09-23
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 2015-05-19
    相关资源
    最近更新 更多