Как сделать так, чтобы метки x не перекрывали мои столбцы на графике? - PullRequest
0 голосов
/ 27 августа 2018

Вот код:

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 голосов
/ 27 августа 2018

Обратите внимание, что 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")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...