R, ggplot2: изменить значение заливки на сдержанный цвет вместо градиента

У меня есть следующие данные:

R, ggplot2: изменить значение заливки на сдержанный цвет вместо градиента

Текст относится к повествованию, ми — это счет определенной функции, а ши — это счет другой функции. У меня они в фрейме данных следующим образом. Я не уверен, как вручную воссоздать этот фрейм данных с векторами значений, поэтому заранее извиняюсь, что это не так воспроизводимо, как могло бы быть в противном случае.

test <- as.data.frame(read_excel("plotTEST.xlsx"))

Мне нужен график, в котором ось x представляет собой каждый текст, а y показывает количество обеих функций. Я хочу аппроксимировать что-то вроде этого, как показано здесь или здесь.

R, ggplot2: изменить значение заливки на сдержанный цвет вместо градиента

Используя эти примеры, я собрал следующее:

ggplot(data=test, aes(x=text, y=mi, fill=shi)) + geom_bar(stat = "identity")

И после множества настроек и нескольких итераций это самый чистый результат, который я получил:

R, ggplot2: изменить значение заливки на сдержанный цвет вместо градиента

Градиент, кажется, используется по умолчанию, несмотря на то, что я пытался следовать коду в связанных примерах, и они не дают конкретных сведений о выборе цвета.

Это градиент, а не сдержанные цвета, как я могу получить сдержанные цвета для счетов ми и ши?

Я попробовал это решение, упомянутое здесь, но это просто приводит к другой отдельной клавише с разными цветами, и каждая полоса получает контур другого цвета.

Возможный дубликат: stackoverflow.com/questions/21236229/столбчатая диаграмма с накоплением

divibisan 06.04.2019 23:35

Чтобы получить гистограмму с накоплением, вам нужны данные в длинном формате (не в широком).

divibisan 06.04.2019 23:36

Возможный дубликат Столбчатая диаграмма с накоплением

camille 07.04.2019 17:10
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
206
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сделать это следующим образом:

# Your data
text <- c("Swollen River", "Anaconda caught", "Chikwan speaks", "Lake explodes","Swollen River", "Anaconda caught", "Chikwan speaks", "Lake explodes")
values  <- c(5,18,45,98, 0,9,33,23)
type <- c("mi","mi","mi","mi","shi","shi","shi","shi")
df <- data.frame("text"=text, "values"=values, "type"=type)

# dataframe in long format:
#             text values type
# 1   Swollen River      5   mi
# 2 Anaconda caught     18   mi
# 3  Chikwan speaks     45   mi
# 4   Lake explodes     98   mi
# 5   Swollen River      0  shi
# 6 Anaconda caught      9  shi
# 7  Chikwan speaks     33  shi
# 8   Lake explodes     23  shi

# Plot
ggplot(data=df, aes(x=text, y=values, fill=type)) + geom_bar(stat = "identity")

Другими словами, вам нужны данные желательно в длинном формате, как описано здесь.

Другие вопросы по теме