【发布时间】:2021-07-01 17:19:09
【问题描述】:
首先我在 sjPlot 中使用 set.theme() 为我的 ggplots 设置主题:
# library(ggplot2)
# library(RColorBrewer)
# library(sjPlot)
# library(tidyr)
set_theme(
geom.outline.color = "antiquewhite4",
geom.outline.size = .5,
geom.label.size = 1.5,
geom.label.color = "blue50",
title.color = "blue",
title.size = 1.5,
title.align = 'center',
# axis.angle.x = 90,
axis.textcolor = "blue",
axis.textsize = 1.15,
base = theme_bw(),
)
从这段代码中我不清楚是否应该绘制每个其他 x 轴标签。当列类为整数时,这是result,每隔一年标记一次。解决方法是将类更改为字符,将其绘制为correctly。这是数据框:
df<-structure(list(Year = c(2012L, 2012L, 2012L, 2012L, 2012L, 2012L,
2012L, 2012L, 2012L, 2012L, 2012L, 2012L, 2013L, 2013L, 2013L,
2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L,
2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L, 2014L,
2014L, 2014L, 2014L, 2015L, 2015L, 2015L, 2015L, 2015L, 2015L,
2015L, 2015L, 2015L, 2015L, 2015L, 2015L, 2016L, 2016L, 2016L,
2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L,
2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L, 2017L,
2017L, 2017L, 2017L, 2018L, 2018L, 2018L, 2018L, 2018L, 2018L,
2018L, 2018L, 2018L, 2018L, 2018L, 2018L, 2019L, 2019L, 2019L,
2019L, 2019L, 2019L, 2019L, 2019L, 2019L, 2019L, 2019L, 2019L,
2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 2020L,
2020L, 2020L, 2020L), Type = c("Cool, Cold Below\nNormal Temperatures",
"Insects", "Tornadoes", "Lightning", "Frost, Freezing", "Heat, Excessive Heat,\nHigh Temp, Low Humidty",
"Fire, Wildfire", "Wind, High Winds", "Hail", "Excessive Rain,\nMoisture, Humidty",
"Flood,\nFlash Flooding", "Drought", "Cool, Cold Below\nNormal Temperatures",
"Insects", "Tornadoes", "Lightning", "Frost, Freezing", "Heat, Excessive Heat,\nHigh Temp, Low Humidty",
"Fire, Wildfire", "Wind, High Winds", "Hail", "Excessive Rain,\nMoisture, Humidty",
"Flood,\nFlash Flooding", "Drought", "Cool, Cold Below\nNormal Temperatures",
"Insects", "Tornadoes", "Lightning", "Frost, Freezing", "Heat, Excessive Heat,\nHigh Temp, Low Humidty",
"Fire, Wildfire", "Wind, High Winds", "Hail", "Excessive Rain,\nMoisture, Humidty",
"Flood,\nFlash Flooding", "Drought", "Cool, Cold Below\nNormal Temperatures",
"Insects", "Tornadoes", "Lightning", "Frost, Freezing", "Heat, Excessive Heat,\nHigh Temp, Low Humidty",
"Fire, Wildfire", "Wind, High Winds", "Hail", "Excessive Rain,\nMoisture, Humidty",
"Flood,\nFlash Flooding", "Drought", "Cool, Cold Below\nNormal Temperatures",
"Insects", "Tornadoes", "Lightning", "Frost, Freezing", "Heat, Excessive Heat,\nHigh Temp, Low Humidty",
"Fire, Wildfire", "Wind, High Winds", "Hail", "Excessive Rain,\nMoisture, Humidty",
"Flood,\nFlash Flooding", "Drought", "Cool, Cold Below\nNormal Temperatures",
"Insects", "Tornadoes", "Lightning", "Frost, Freezing", "Heat, Excessive Heat,\nHigh Temp, Low Humidty",
"Fire, Wildfire", "Wind, High Winds", "Hail", "Excessive Rain,\nMoisture, Humidty",
"Flood,\nFlash Flooding", "Drought", "Cool, Cold Below\nNormal Temperatures",
"Insects", "Tornadoes", "Lightning", "Frost, Freezing", "Heat, Excessive Heat,\nHigh Temp, Low Humidty",
"Fire, Wildfire", "Wind, High Winds", "Hail", "Excessive Rain,\nMoisture, Humidty",
"Flood,\nFlash Flooding", "Drought", "Cool, Cold Below\nNormal Temperatures",
"Insects", "Tornadoes", "Lightning", "Frost, Freezing", "Heat, Excessive Heat,\nHigh Temp, Low Humidty",
"Fire, Wildfire", "Wind, High Winds", "Hail", "Excessive Rain,\nMoisture, Humidty",
"Flood,\nFlash Flooding", "Drought", "Cool, Cold Below\nNormal Temperatures",
"Insects", "Tornadoes", "Lightning", "Frost, Freezing", "Heat, Excessive Heat,\nHigh Temp, Low Humidty",
"Fire, Wildfire", "Wind, High Winds", "Hail", "Excessive Rain,\nMoisture, Humidty",
"Flood,\nFlash Flooding", "Drought"), `Number of Counties` = c(0L,
0L, 0L, 0L, 3L, 1L, 0L, 0L, 0L, 0L, 0L, 3L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 5L, 5L, 19L, 19L, 0L, 5L, 0L, 0L, 0L, 5L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 3L, 3L, 0L, 0L, 0L, 3L, 3L, 3L, 0L, 8L,
0L, 3L, 0L, 0L, 10L, 8L, 3L, 3L, 0L, 0L, 0L, 9L, 4L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 4L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 4L, 0L, 4L, 19L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 19L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 24L)), row.names = c(NA,
-108L), class = c("tbl_df", "tbl", "data.frame"))
还有我的代码
# check class
class(df$Year) # [1] "integer"
## ggplot
# interpolate a color palette
colourCount = length(unique(df$Type))
getPalette = colorRampPalette(brewer.pal(10, "RdBu"))
# make plot
ggplot(df)+
geom_bar(aes(x=Year, y=`Number of Counties`, fill=Type), stat="identity") +
scale_fill_manual(values = getPalette(colourCount)) +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1), legend.key.height=unit(.75, "cm"))+
ggtitle('VT Disaster Designations: 2012-2020\nNote some counties have more than one\ndisaster type per year')
#change year class to character
df$Year<-as.character(df$Year)
ggplot(df)+
geom_bar(aes(x=Year, y=`Number of Counties`, fill=Type), stat="identity") +
scale_fill_manual(values = getPalette(colourCount)) +
theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust=1), legend.key.height=unit(.75, "cm"))+
ggtitle('VT Disaster Designations: 2012-2020\nNote some counties have more than one\ndisaster type per year')
感谢您对此处 sjPlot 和/或 ggplot 的任何帮助。
【问题讨论】: