gpt4 book ai didi

r - ggplot 使图例符号变细

转载 作者:行者123 更新时间:2023-12-03 14:07:37 25 4
gpt4 key购买 nike

我试图从 BBC 复制这个数字。我很接近,但我正在努力使图例符号变薄。这可能吗?

enter image description here

library(tidyverse)
library("rio")
url <- "https://gist.githubusercontent.com/ericpgreen/a728be304b811fe7708699682eb4ba42/raw/fd924596e30c131dbaf97c00c9d9863bb40abb9a/bbcCovid.R"
df_plot <- rio::import(url)

ggplot(df_plot, aes(x=date,
y=reorder(Country.Region,
total,
order=TRUE))) +
geom_tile(aes(fill=casesRollf),
color="white",
na.rm = TRUE
#, key_glyph = draw_key_timeseries
) +
theme_bw() + theme_minimal() +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.title = element_blank(),
plot.title.position = "plot") +
scale_x_date(breaks = as.Date(c("2020-02-14",
"2020-03-05",
"2020-03-25",
"2020-04-14")),
date_labels = "%d %b") +
scale_fill_manual(values=
c("#e4e4e4", "#ffeed2",
"#ffda64", "#faab19",
"#d2700d",
"#d56666", "#9a1200",
"#5b0600", "#000000"),
guide = guide_legend(reverse = TRUE),
labels=c("No cases", "1 to 10",
"11 to 50", "51 to 100",
"101 to 250", "251 to 500",
"501 to 1,000", "1,001 to 5,000",
"> 5,000")) +
labs(title = "Where are the most new coronavirus cases?",
subtitle = "New confirmed cases, three-day rolling average",
x="",
y="")

enter image description here

最佳答案

您可以使用 legend.key.widththeme .为了更接近原始图,您可以使用 legend.positionplot.margin如:

ggplot(df_plot, aes(x=date, 
y=reorder(Country.Region,
total,
order=TRUE))) +
geom_tile(aes(fill=casesRollf),
color="white",
na.rm = TRUE
#, key_glyph = draw_key_timeseries
) +
theme_bw() + theme_minimal() +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.title = element_blank()) +
scale_x_date(breaks = as.Date(c("2020-02-14",
"2020-03-05",
"2020-03-25",
"2020-04-14")),
date_labels = "%d %b") +
scale_fill_manual(values=
c("#e4e4e4", "#ffeed2",
"#ffda64", "#faab19",
"#d2700d",
"#d56666", "#9a1200",
"#5b0600", "#000000"),
guide = guide_legend(reverse = TRUE),
labels=c("No cases", "1 to 10",
"11 to 50", "51 to 100",
"101 to 250", "251 to 500",
"501 to 1,000", "1,001 to 5,000",
"> 5,000")) +
labs(title = "Where are the most new coronavirus cases?",
subtitle = "New confirmed cases, three-day rolling average",
x="",
y="")+
theme(plot.margin=unit(c(0.25,2,0.25,0.25),"cm"),
legend.position=c(1.03,0.72),
legend.key.width = unit(0.4,"line"))

enter image description here

顺便说一句:不错的作品;)

关于r - ggplot 使图例符号变细,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61260999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com