Звездный график в R - PullRequest
       7

Звездный график в R

2 голосов
/ 08 апреля 2020

Я хочу нарисовать звездный график в R с датами и осью nb. Центр даты: 02.07.2018.

Пример изображения:

enter image description here

Мои данные:

dates   NB
3.01.2018   -80
15.01.2018  -75
8.02.2018   70
20.02.2018  65
4.03.2018   45
28.03.2018  20
9.04.2018   55
21.04.2018  60
3.05.2018   10
15.05.2018  40
8.06.2018   80
20.06.2018  50
02.07.2018 0
14.07.2018  -110
7.08.2018   50
19.08.2018  100
12.09.2018  45
24.09.2018  -20
6.10.2018   5
30.10.2018  20
11.11.2018  30
23.11.2018  -40
5.12.2018   -50
17.12.2018  -60

С чего начать ? Понятия не имею. Спасибо.

Ответы [ 2 ]

2 голосов
/ 08 апреля 2020

график ggplot

Это эквивалентно ggplot:

library(ggplot2)
center <- subset(dd, dates=="2018-07-02")
ggplot(dd, aes(dates, NB, xend = center$dates, yend = center$NB)) +
  geom_segment(color="blue") +
  geom_point()

График будет выглядеть следующим образом:

enter image description here

Редактировать

Если вы хотите включить все даты на ось x, вы можете использовать этот код:

library(ggplot2)
center <- subset(dd, dates=="2018-07-02")
ggplot(dd, aes(dates, NB, xend = center$dates, yend = center$NB)) +
  geom_segment(color="blue") +
  geom_point() +
  theme(axis.text.x = element_text(angle = 60, hjust = 1)) +
  scale_x_date(breaks = dd$dates)

Надеюсь, это поможет.

0 голосов
/ 08 апреля 2020

Сначала убедитесь, что прочитали ваши данные и преобразовали столбец даты в правильный объект даты в R.

dd <- read.table(text="
dates   NB
3.01.2018   -80
15.01.2018  -75
8.02.2018   70
20.02.2018  65
4.03.2018   45
28.03.2018  20
9.04.2018   55
21.04.2018  60
3.05.2018   10
15.05.2018  40
8.06.2018   80
20.06.2018  50
02.07.2018 0
14.07.2018  -110
7.08.2018   50
19.08.2018  100
12.09.2018  45
24.09.2018  -20
6.10.2018   5
30.10.2018  20
11.11.2018  30
23.11.2018  -40
5.12.2018   -50
17.12.2018  -60", header=T, stringsAsFactors=FALSE)
dd$dates <- as.Date(dd$dates, "%d.%m.%Y")

Здесь я просто использовал read.table, а затем as.Date для преобразования первый столбец с правильными значениями даты. Это позволяет легко начать сюжет. Например,

plot(NB~dates, dd)

Затем, чтобы добавить все линии, мы можем легко добавить группу сегментов с общей конечной точкой. Здесь мы берем вашу контрольную точку, а затем рисуем сегменты.

plot(NB~dates, dd)
center <- subset(dd, dates=="2018-07-02")
segments(dd$dates, dd$NB, center$dates, center$NB)

Технически это рисует сегменты поверх точек. Если вы хотите изменить порядок и сделать вещи синим, вы можете сделать

center <- subset(dd, dates=="2018-07-02")
plot(NB~dates, dd, type="n")
segments(dd$dates, dd$NB, center$dates, center$NB, col="blue")
points(dd$dates, dd$NB, pch=20)

enter image description here

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