如何避免在条形图中堆叠名称?
How to avoid stacking names in the barplot?
我正在 ggplot2 中制作条形图,其中 "country" 与 "suicides per 100,000 people" 进行比较。我的问题是图中的国家/地区名称堆叠在一起。
过去,我尝试在 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 中我找不到类似的解决方案。
barplot 与 seaborn 和 matplotlib
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")
希望输出的国家名称均匀分布,如下图:
但实际输出如下:
看起来你的国家名称在他们的轴上太局促了。您是否尝试过以更大的高度导出图像?
当我以 1200 x 400 的比例导出此图时出现重叠问题:
但是当我以 1200 x 700 导出它时看起来更好。
希望对您有所帮助。如果是这样,那应该很容易解决。您也可以尝试调整 y 轴上的字体大小。只需添加:
theme(axis.text.y = element_text(size=12))
使用您需要的任何字体大小。
我正在 ggplot2 中制作条形图,其中 "country" 与 "suicides per 100,000 people" 进行比较。我的问题是图中的国家/地区名称堆叠在一起。
过去,我尝试在 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 中我找不到类似的解决方案。
barplot 与 seaborn 和 matplotlib
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")
希望输出的国家名称均匀分布,如下图:
但实际输出如下:
看起来你的国家名称在他们的轴上太局促了。您是否尝试过以更大的高度导出图像?
当我以 1200 x 400 的比例导出此图时出现重叠问题:
但是当我以 1200 x 700 导出它时看起来更好。
希望对您有所帮助。如果是这样,那应该很容易解决。您也可以尝试调整 y 轴上的字体大小。只需添加:
theme(axis.text.y = element_text(size=12))
使用您需要的任何字体大小。