Визуализация Scale/Position R ggplot2: не знаю, какой пакет использовать

У меня была идея для визуализации, которая включает в себя создание графика для каждой строки в моем наборе данных (58 строк), показывающего относительное положение значения, которое я выбираю, в шкале (например: 58 городов и положение размера населения одного города по отношению к другим).

Визуализация Scale/Position R ggplot2: не знаю, какой пакет использовать

Вот пример кода, показывающий мою структуру данных (nregs — название регионов, которые я изучаю). Я хочу создать «ранговый график», как я показал, для каждой строки, один график на основе total_pop, а другой на основе urban_pop.

structure(list(nregs = c("1.1 Javari e Interbacias Javari - Juruá", 
"1.2 Transf. da Margem Esquerda do Solimões", "1.3 Juruá e Interbacias Juruá - Jutaí", 
"1.4 Purus e Interbacias Purus - Juruá", "1.5 Negro", "1.6 Madeira e Interbacias Madeira - Purus", 
"1.7 Estaduais Margem Esquerda do Amazonas", "1.8 Tapajós e Interbacias Tapajós - Madeira", 
"1.9 Estaduais PA", "1.10 Xingu e Interbacias Xingu - Tapajós"
), urban_pop = c(63777, 83237, 265725, 717181, 2122424, 1693933, 
837519, 1169865, 171045, 515124), total_pop = c(111120, 141473, 
405955, 910484, 2357696, 2320307, 933181, 1639624, 304181, 831595
)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))

Поскольку английский не является моим родным языком, мне трудно даже искать решение в Интернете. Обычно я делаю визуализацию данных с помощью R и tidyverse. Может ли кто-нибудь дать мне хотя бы направление? Заранее спасибо.

Если вы поделитесь небольшим количеством примеров данных, кто-то, вероятно, даст вам полное решение в ggplot. dput — это лучший способ поделиться демонстрационными данными, например, dput(your_data[1:10, ]) для первых 10 строк в формате копирования/вставки с включенной информацией о классе и структуре. Пожалуйста, отредактируйте небольшой образец данных в своем вопросе.

Gregor Thomas 09.12.2020 20:27
Стоит ли изучать 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
1
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Похоже, вы ищете что-то вроде этого:

library(ggplot2)
library(dplyr)

df %>% 
  mutate(urban_pop = rank(urban_pop),
         total_pop = rank(total_pop)) %>%
  tidyr::pivot_longer(-1) %>%
  ggplot(aes(value, nregs)) +
  geom_segment(aes(x = 1, y = nregs, xend = 10, yend = nregs)) +
  geom_segment(data = expand.grid(x = seq(nrow(df)), y = seq(nrow(df)) - 0.1),
               aes(x = x, y = y, xend = x, yend = y + 0.2)) +
  scale_x_continuous(breaks = seq(nrow(df)), labels = rev(seq(nrow(df))),
                     name = "Rank") +
  geom_point(aes(color = name), position = position_dodge(width = 0.5),
             size = 4) +
  scale_color_manual(values = c("red", "forestgreen")) +
  theme_void() +
  theme(axis.text.y = element_text(hjust = 1),
        axis.text.x = element_text(),
        axis.title.x = element_text(size = 16))

Обратите внимание, что ранги городского и общего населения кажутся одинаковыми для каждого города в вашей выборке.

это отличное начало для того, что я хотел на самом деле! большое спасибо

fernando schuh 10.12.2020 14:50

@fernandoschuh это здорово. См. здесь советы о том, что делать, когда кто-то отвечает на ваш вопрос.

Allan Cameron 10.12.2020 14:53

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