Преобразование точки рассеяния в одну среднюю линию - PullRequest
0 голосов
/ 21 марта 2019

У меня есть график разбросанного графика, нарисованный с кодом ниже. Но я хотел бы нарисовать одну линию среднего значения каждой отрасли. Преобразование geom_point в geom_line не дает отдельной строки, но дает плотность, подобную графику.

  output$ind=renderPlot({
     ggplot(data = dailyprice_gather[dailyprice_gather$Industry == input$industry2,]) +
     geom_point(aes(x= Date , y= cumulative, color=Industry) , size=0.25) +
     ggtitle(paste0("Simple Cumulative Return over Years - Industry Wise"))

     })

Пример моего набора данных:

structure(list(Date = structure(c(17833, 17830, 17829, 17828, 
NA), class = "Date"), stocks = structure(c(1L, 1L, 1L, 1L, 1L
), .Label = c("DBS SP Equity", "OCBC SP Equity", "ST SP Equity"
), class = "factor"), cumulative = c(22.99, 23.1, 23.71, 24.1, 
NA), Industry = structure(c(1L, 1L, 1L, 1L, 1L), .Label = c("Banks", 
"Telecommunications"), class = "factor")), row.names = c(NA, 
-5L), class = c("tbl_df", "tbl", "data.frame"))

this is current geom_point

Я хотел бы построить 1 одну среднюю линию вместо 3, как показано сейчас. Так что, в основном, график среднего (3 акции в банковской отрасли. Другие отрасли могут иметь более или менее количество акций в них

Ответы [ 2 ]

1 голос
/ 21 марта 2019

Это то, что вы ищете? Поскольку ваш набор данных не полный, я использовал набор данных iris. Сначала я вычисляю среднее значение того, что вы показываете, и добавляю это как дополнительный столбец во фрейм данных. Тогда этот столбец прост в использовании в ggplot.

library(tidyverse)

data(iris)

iris <- iris %>% 
  group_by(Species) %>% 
  # calculate the mean of what your plotting on the y-axis
  mutate(Petal.Width.mean  = mean(Petal.Width))

iris %>% 
  ggplot(aes(x = Petal.Length, 
             y = Petal.Width, 
             color = Species)) +
  geom_point() +
  geom_line(aes(x = Petal.Length,
                y = Petal.Width.mean))
0 голосов
/ 21 марта 2019

это помогает?

+ geom_smooth (method = lm, se = FALSE)

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