r - ggplot 中的响应式注释 - 用变化的形状和文本注释图形
问题描述
我正在尝试在 ggplot 中制作下面的图表。
我遇到了两个问题
- 您如何使用某个对象(例如括号符号“{”)注释图形并使其缩放或以其他方式响应指定数量?
- 如何在单个填充线周围添加边框?我希望“赤字”是带有黑色虚线边框的白色。
以下是数据的结构:
> gap_analysis_plot_data
income_range control total variable value
1 0% to 30% MFI Households 29590 matched_units_to_hh 7525
2 0% to 30% MFI Units 10665 matched_units_to_hh 7525
3 31% to 50% MFI Households 19430 matched_units_to_hh 3255
4 31% to 50% MFI Units 15440 matched_units_to_hh 3255
5 0% to 30% MFI Households 29590 paying_too_much 22065
6 0% to 30% MFI Units 10665 paying_too_much 3095
7 31% to 50% MFI Households 19430 paying_too_much 14980
8 31% to 50% MFI Units 15440 paying_too_much 5910
9 0% to 30% MFI Households 29590 vacant_units 0
10 0% to 30% MFI Units 10665 vacant_units 45
11 31% to 50% MFI Households 19430 vacant_units 0
12 31% to 50% MFI Units 15440 vacant_units 690
13 0% to 30% MFI Households 29590 getting_a_deal 0
14 0% to 30% MFI Units 10665 getting_a_deal 0
15 31% to 50% MFI Households 19430 getting_a_deal 1195
16 31% to 50% MFI Units 15440 getting_a_deal 5585
17 0% to 30% MFI Households 29590 existing_gap 0
18 0% to 30% MFI Units 10665 existing_gap 18925
19 31% to 50% MFI Households 19430 existing_gap 0
20 31% to 50% MFI Units 15440 existing_gap 3990
这是我到目前为止生成下图的代码。
p <- gap_analysis_plot_data %>% ggplot(aes(x = control, y = value, fill = variable)) +
geom_col() +
facet_wrap(~income_range) +
labs(title = 'Affordability gap', subtitle = gtitle, x = "", y = "Number of households or units\n") +
scale_y_continuous(label = comma) +
scale_fill_manual(values = group.colors,
name = "",
breaks = c('existing_gap', 'getting_a_deal', 'vacant_units', 'paying_too_much', 'matched_units_to_hh'),
labels = c('Existing gap', 'Renting down\n(getting a deal)', 'Vacant units', 'Renting up\n(paying too much)', 'Matched units')
)
> print(p)
我也很好奇你是否有关于如何添加直接标签的提示,如果它不是太复杂的话。但是请注意标签名称的细微变化。
解决方案
推荐阅读
- python - 音频信号在字级边界分割
- woocommerce - 从变体 SKU 获取产品变体 ID
- javascript - 在 Ajax 中,如何为多个条件编写“标题”?
- amazon-web-services - Athena 表在列值中显示“
- javascript - JavaScipt 代码使用正则表达式替换给定字符串中的所有匹配词,但不在脚本标记内
- swift - 在不同的视图控制器中实现相同的内容而不创建额外的视图控制器
- python - 循环函数并自动生成字典
- firebase - React native -Firebase“错误:Reference.push 失败:第一个参数包含属性'messages.timestamp'中的未定义。”
- java - 如何在 AuditorAware 中获取 Keycloak 用户名
- node.js - AWS S3 文件上传