代码如下:
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
如果我使用上面的代码,则会得到以下内容(忽略句点;它们并不重要):
如果我创建一个更大的情节(例如用它填充屏幕),我会得到:
(忽略丢失的标签;我不小心将其删除了,应该是“ Felinity”,无论是什么)
这种条形图适用于大屏幕上的PowerPoint,因此我可以在标签上做得很小。
这就是我想要的:我想要干净漂亮的标签,每个条形一个,并且由于这是一个愿望清单,我希望标签可以调整其自身的大小,以便它们足够小以适合每个条形一个,我希望它们位于正确的垂直点,以免它们与条形重叠。有任何想法吗?
发疯。我想要漂亮的条形图,并且必须制作很多条形图,因此每个选项都不能随意旋转。无论变量名称的长度如何,每次都必须使用这种类型的数据文件。
谢谢!
答案 0 :(得分:2)
请注意,theme_set
和theme_tufte
是ggplot2
的特定功能。
使用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")