我被要求重新创建以下情节风格。(请忽略这是否是一种良好的可视化类型的问题,并善意地将其视为在数值表中添加了一个彩色元素。)
其中大部分都非常简单,但我还没有找到一种使中心空心的好方法。为了时间的利益,我可能会求助于添加不可见的虚拟数据(如果没有其他人这样做,我会发布这种方法,但它似乎不如修改主题的最佳方法)。是否有基于主题的解决方案或非 ggplot2 R 解决方案?
我们在模仿什么
简单的 ggplot2 结果(不需要的填充中心)
library(ggplot2)
# make sample dataframe
Category <- c("Electronics", "Appliances", "Books", "Music", "Clothing",
"Cars", "Food/Beverages", "Personal Hygiene",
"Personal Health/OTC", "Hair Care")
Percent <- c(81, 77, 70, 69, 69, 68, 62, 62, 61, 60)
internetImportance<-data.frame(Category,Percent)
# append number to category name
internetImportance$Category <-
paste0(internetImportance$Category," - ",internetImportance$Percent,"%")
# set factor so it will plot in descending order
internetImportance$Category <-
factor(internetImportance$Category,
levels=rev(internetImportance$Category))
# plot
ggplot(internetImportance, aes(x = Category, y = Percent,
fill = Category)) +
geom_bar(width = 0.9, stat="identity") +
coord_polar(theta = "y") +
xlab("") + ylab("") +
ylim(c(0,100)) +
ggtitle("Top Product Categories Influenced by Internet") +
geom_text(data = internetImportance, hjust = 1, size = 3,
aes(x = Category, y = 0, label = Category)) +
theme_minimal() +
theme(legend.position = "none",
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line = element_blank(),
axis.text.y = element_blank(),
axis.text.x = element_blank(),
axis.ticks = element_blank())
我们如何用空心中心绘制这些数据?