r - 如何更改两条线之一的线型
问题描述
我想更改图中两条线之一的线型,只将“line1”变为虚线。
我的情节:
我的数据如下所示:
Year Sex value Rate Group
<dbl> <chr> <dbl> <dbl> <chr>
1 1912 Female 18 1.14 A
2 1912 Male 52 0.893 L
3 1913 Female 25 1.02 A
4 1913 Male 42 1.05 L
5 1914 Female 14 1.26 A
6 1914 Male 67 1.29 L
7 1915 Female 25 1.32 A
8 1915 Male 61 1.45 L
9 1916 Female 32 1.52 A
10 1916 Male 71 1.64 L
11 1917 Female 42 2.01 A
12 1917 Male 92 1.87 L
我的代码:
data %>% ggplot() +
geom_bar(aes(x = Year, y = value, fill= Sex), stat = "identity",
width=0.8,
alpha=0.8) +
geom_line(aes(x = Year, y = Rate * 100, colour= Group),
size = 1.0) +
scale_colour_manual(labels = c("line1","line2"),
values = c("red","blue"))+
scale_fill_manual(values = c("Female"="green","Male"="black"))+
guides(fill=guide_legend(title = "Number"),
color=guide_legend(title= "Ratio"))
有人可以帮忙吗?我尝试了很长一段时间,但失败了。提前致谢。
解决方案
正如评论中所建议的,并使用每个 scale_*_manual 中的“名称”术语来指定图例名称:
data %>%
ggplot() +
geom_bar(aes(x = Year, y = value, fill= Sex), stat = "identity",
width=0.8,
alpha=0.8) +
geom_line(aes(x = Year, y = Rate * 100,
colour = Group, linetype = Group),
size = 1.0) +
scale_colour_manual(name = "Ratio",
labels = c("line1","line2"),
values = c("red","blue"))+
scale_linetype_manual(name = "Ratio",
labels = c("line1","line2"),
values = c("dashed","solid"))+
scale_fill_manual(name = "Number",
values = c("Female"="green","Male"="black"))
推荐阅读
- javascript - 打字稿:如何键入 Ramda R.prop(key) T' 不能分配给类型为 '(s: {}) => {} 的参数
- pandas - pandas:获取数组中的所有 groupby 值
- python - SelectKBest 没有产生适当的结果
- c - 为什么只有在 Visual Studio 下运行可执行文件时 CreateFileA 才会失败?
- x86 - 已编译引导加载程序的大小错误
- css - css首字母转换?
- javascript - 将多维对象数组减少为单个对象数组
- ajax - 使用 f:ajax 标记时,Ajax 在 Internet Explorer 中无法正常工作
- python - 等到 XHR 请求完成
- python - python从另一个文件调用导航