r - 如何用 ggplot2 绘制长图例
问题描述
我想在图表底部绘制多折线图的长图例。如果不使用较小的图例字体,我该如何做到这一点?以下示例使用 6 条线,但我也使用了更多线的图形。
library(tidyverse)
df <- tibble(d = c(1,1,2,2,3,3,4,4,5,5,6,6),
name = c("long long long long long text 1",
"long long long long long text 1",
"long long long long long text 2",
"long long long long long text 2",
"long long long long long text 3",
"long long long long long text 3",
"long long long long long text 4",
"long long long long long text 4",
"long long long long long text 5",
"long long long long long text 5",
"long long long long long text 6",
"long long long long long text 6"),
year = c(2010, 2011, 2010, 2011, 2010, 2011, 2010, 2011,
2010, 2011, 2010, 2011),
value = c(0.1,0.2,0.3,0.4,0.5,0.6,0.6,0.5,0.4,0.3,0.2,0.1))
ggplot(data = df, aes(x = year, y = value)) +
geom_line(aes(color = name, linetype = name), size = 1) +
geom_point(aes(shape = name, color = name), size = 2) +
theme_bw() +
theme(axis.text.x=element_text(size=rel(1.5), angle=90),
axis.text.y=element_text(size=rel(1.5)),
legend.title=element_blank(),
legend.text=element_text(size=rel(1.5)),
legend.position = "bottom",
axis.line = element_line(color = 'black'),
panel.border = element_blank(),
panel.background = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank()) +
scale_x_continuous(breaks=seq(2010, 2011, by = 1)) +
labs(
title = "Chart title",
x = NULL,
y = "No."
) +
ylim(0, 1)
解决方案
推荐阅读
- angular - Testing add multiple headers interceptor
- c++ - 模板函数中的多态性
- java - I want to display some text onDoubleClick event how to do so ? i have attached my sourcecode Along
- php - PHP cURL GET request : You are not authorized to access this resource
- google-cloud-platform - 有没有办法使用您当前的凭据来承担服务帐户,而不必使用 json 密钥?
- npm - Undefined nameToPath when using ClojureScript's :npm-deps
- c++ - Why my empty program has too many unused imports?
- php - 在PHP中根据数据库值显示选择名称
- python-3.x - python子进程SVN更新FileNotFoundError
- amazon-web-services - Redshift查询不返回某些列