R 重新创建图形设计

R 重新创建图形设计,r,ggplot2,data-visualization,R,Ggplot2,Data Visualization,[更新]:我发现了一个很棒的条形图图形设计,我想在R中重新创建它,但是我在538中的一些主要元素上遇到了困难。下面是一张图表和我到目前为止的进展情况 这是我试图重新绘制的图表 这是我的密码: convicted <- c(0.68, 0.33) incarcertated <- c(0.48, 0.12) group <- c("GENERAL POPULATION", "LAW ENFORCEMENT") df <- data.frame(convicted, in

[更新]:我发现了一个很棒的条形图图形设计,我想在R中重新创建它,但是我在538中的一些主要元素上遇到了困难。下面是一张图表和我到目前为止的进展情况

这是我试图重新绘制的图表

这是我的密码:

convicted <- c(0.68, 0.33)
incarcertated <- c(0.48, 0.12)
group <- c("GENERAL POPULATION", "LAW ENFORCEMENT")

df <- data.frame(convicted, incarcertated, group)
mdf <- melt(df)

ggplot(mdf) +
  geom_bar(aes(x=variable, y=1), stat="identity", alpha=.1, position=position_dodge(1)) +
  geom_bar(aes(x=variable, y=value, fill=group), stat="identity", position=position_dodge(1)) + 
  scale_fill_manual(values=c("#058cd3", "#ff2700"))
我不知道该怎么做

让组标签位于每个组的顶部并分开 它们是关键的设计元素 创建标题和灰色副标题 获取颜色灰色条以分隔与彩色条相同的距离 酒吧 使用条形图获取要回避的值标签 我要补充的是,在我理想的娱乐活动中,两种颜色将被分开,以便在两组中使用相同的颜色

希望能帮助您尽可能准确地重新创建此聊天。我很确定这是在R中创建的,所以我知道这是可以做到的。谢谢你的帮助

[更新]:多亏了hfty的帮助,我已经非常接近了,但是我得到了一个奇怪的边界效果,我无法上传到评论部分,所以我在这里完成了。这是怎么回事


这很可能不是单独使用R创建的。如果是,则可能随后在Illustrator或类似工具中进行了编辑。但是,以下是ggplot2可以使您接近所需结果的一些方法:

让组标签位于每个组的顶部,并将它们分开*关键设计元素 使用镶嵌面包裹和坐标翻转相结合的方法来分隔绘图,应该可以达到这一目的

ggplot(mdf, aes(x=variable, y=value, fill=group)) + 
  facet_wrap(~group, ncol=1) +
  geom_bar(stat="identity", position=position_dodge(1)) + 
  coord_flip() + ...
创建标题和灰色副标题 用ggplot实现这一点并不容易。我建议以后再编辑,例如使用Illustrator。但是,您可以添加粗体标题,例如:

... + ggtitle(expression(atop(bold("What Percentage of Crimininal Defendants Are\nConvicted and Incarcerated?")))) + ...
使灰色条与彩色条的间距相同 你就快到了:

 ... + geom_bar(aes(x=variable, y=1), stat="identity", alpha=.1, 
                position=position_dodge(1), fill = "#aaaaaa") + ...
使用条形图获取要回避的值标签 将其与其他一些调整结合起来,例如使用ggthemr清理默认样式:

# devtools::install_github('ggthemr', 'cttobin') # Install ggthemr
library(ggthemr)
ggthemr('fresh')

ggplot(mdf, aes(x=variable, y=value, fill=group)) + facet_wrap(~group, ncol=1) +
  geom_bar(stat="identity", position=position_dodge(1)) + 
  geom_bar(aes(x=variable, y=1), stat="identity", alpha=.1, position=position_dodge(1), fill = "#aaaaaa") +
  geom_text(aes(label=round(100*value)), hjust=-0.5) +
  scale_fill_manual(values=c("#058cd3", "#ff2700")) +
  theme(strip.text.x = element_text(hjust=-0.15),
        axis.text.x = element_blank(),
        axis.line = element_blank(),
        axis.ticks = element_blank(),
        axis.title = element_blank(),
        legend.title = element_blank(),
        axis.title.y=element_blank(),
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        legend.position = "none"
  ) +
  coord_flip()  + 
  ggtitle(expression(atop(bold("What Percentage of Crimininal Defendants Are\nConvicted and Incarcerated?")))) +
  theme(plot.title = element_text(size = 20, hjust=-0.4, vjust=0.2))

小面包起来小面包!这太近了。不过,我的图表中出现了一个奇怪的半边框。我会更新我原来的帖子,这样你就可以看到了it@tom:对不起,我忘了我的R安装默认加载ggthemr。我已经在我的答案中添加了相应的行,这应该可以解决它。这太棒了。还有两件事。1.如何使标签彼此对齐并左对齐?二,。你有办法在主标题下面加一个副标题吗?@tom没有办法正确地左对齐ggplot,据我所知。你必须摆弄hjust,直到你得到你想要的在你想要的绘图大小的对齐。字幕也不容易。如果您放弃左对齐,您可以尝试执行类似于中的操作,但您将无法同时将标题和副标题伪左对齐。我建议使用Illustrator或Inkscape进行最终调整。