如何防止x标签在条形图中重叠我的条形?

时间:2018-08-26 22:22:51

标签: r powerpoint

代码如下:

barplot(colMeans(sample_data, na.rm = TRUE),
    las = 1,
    main = "Main Title",
    xlab = "Variable",
    ylab = "How Characteristic",
    col = rainbow(20),
    cex.names = 0.9,
    horiz = FALSE)

此处提供了示例数据集:

https://github.com/akaEmma/public_data/blob/master/sample_data.csv 或者,您可以自己输入其中的一些。这些是变量名:

Love of Chocolate,Asian Knowledge,Stable Cleanliness,Love of People,Attention,Ethics,Aggression,Swimming,Style Points,Felinity

以下是一些带有名称的数据:

8.67    9   6.25    7.33    6.33    5       6.67    5   5.25
8       3   6       6.67    8       7       7.67    4.5 5.25
7.33    7.5 5.75    8.67    8.67    8       5.33    2.5 3
8       6.5 6       6.33    8.33    5.33    5.67    6   6.5
6       5.5 5.25    5.33    5       4.67    4       4   3.5
7.67    7   6       4.67    7.33    5.67    7.67    5   3.75
8.67    8   7.5     5.67    7.33    5       8.33    7   7.75

如果我使用上面的代码,则会得到以下内容(忽略句点;它们并不重要):

Small Image that doesn't have good labels

如果我创建一个更大的情节(例如用它填充屏幕),我会得到:

Now the labels overlap the bars.

(忽略丢失的标签;我不小心将其删除了,应该是“ Felinity”,无论是什么)

这种条形图适用于大屏幕上的PowerPoint,因此我可以在标签上做得很小。

这就是我想要的:我想要干净漂亮的标签,每个条形一个,并且由于这是一个愿望清单,我希望标签可以调整其自身的大小,以便它们足够小以适合每个条形一个,我希望它们位于正确的垂直点,以免它们与条形重叠。有任何想法吗?

发疯。我想要漂亮的条形图,并且必须制作很多条形图,因此每个选项都不能随意旋转。无论变量名称的长度如何,每次都必须使用这种类型的数据文件。

谢谢!

1 个答案:

答案 0 :(得分:2)

请注意,theme_settheme_tufteggplot2的特定功能。

使用ggplot2可以执行以下操作

df <- read.csv("https://raw.githubusercontent.com/akaEmma/public_data/master/sample_data.csv")

library(tidyverse)
library(ggthemes)
df %>%
    gather(key, value) %>%
    group_by(key) %>%
    summarise(mean.value = mean(value, na.rm = T)) %>%
    mutate(key = factor(key, levels = key[rev(order(mean.value))])) %>%
    ggplot(aes(key, mean.value, fill = as.numeric(key))) +
    geom_col() +
    theme_tufte() +
    scale_fill_gradientn(colours = rainbow(5), guide = F) +
    theme(axis.text.x = element_text(size = 6)) + 
    labs(x = "", y = "How characteristic")

enter image description here