如何避免在barplot中堆叠名称?

时间:2019-07-19 17:52:16

标签: r ggplot2 python-ggplot

我正在ggplot2中绘制一个小节,其中将“国家”与“每100,000人自杀”进行比较。我的问题是国家/地区名称在图表中彼此重叠。

过去,我尝试使用以下代码在python中使用seaborn和matplotlib:

import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(20,50))
y = data['country']
sns.set_context("paper", 2.5, {"lines.linewidth": 4})
sns.countplot(y=y,label='count')

我之所以强调这一点,是因为变量'country'在图中也是隐含的,并且效果很好,但是现在在R中,我找不到类似的解决方案。

具有seaborn和matplotlib的barplot

enter image description here

ggplot(country, aes(x = country, y = suicide_per_100k, fill = continent)) + 

geom_bar(stat = "identity") + 

geom_hline(yintercept = global_average, linetype = 2, color = "grey35", 
size = 1) +

labs(title = "Global suicides per 100k, by Country",
       x = "Country", 
       y = "Suicides per 100k", 
       fill = "Continent") +

coord_flip() +

scale_y_continuous(breaks = seq(0, 45, 2)) + 

theme(legend.position = "bottom")

我希望输出中的国家名称均匀分布,如下图所示:

enter image description here

但是实际输出如下:

enter image description here

1 个答案:

答案 0 :(得分:1)

您的国家/地区名称似乎太局促了。您是否尝试过以更大的高度导出图像?

当我在1200 x 400处导出此图时,出现重叠问题: enter image description here

但是当我以1200 x 700导出时,它看起来更好。 enter image description here

我希望这会有所帮助。如果是这样,应该很容易解决。您也可以尝试在y轴上调整字体大小。只需添加:

theme(axis.text.y = element_text(size=12))

使用所需的任何字体大小。