Изменение значений по оси x в графике ggplot

#r #ggplot2

#r #ggplot2

Вопрос:

Это первый раз, когда я опубликовал. Пожалуйста, извините меня, если на этот вопрос был дан ответ в другом месте или если он плохо объяснен.

 > summary(pivoteddata)
          country       year               value      
 Belgium      :35   Length:175         Min.   :54.50  
 France       :35   Class :character   1st Qu.:80.30  
 Italy        :35   Mode  :character   Median :86.10  
 Spain        :35                      Mean   :82.37  
 United States:35                      3rd Qu.:87.55  
 Afghanistan  : 0                      Max.   :95.50  
 (Other)      : 0                      NA's   :164 



   > dput(head(pivoteddata, 20))
structure(list(country = structure(c(10L, 10L, 10L, 10L, 10L, 
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 
10L, 10L), .Label = c("Afghanistan" - deleted countries - "Zimbabwe"), 
class = "factor"), year = c("X1984", "X1985", "X1986", 
"X1987", "X1988", "X1989", "X1990", "X1991", "X1992", "X1993", 
"X1994", "X1995", "X1996", "X1997", "X1998", "X1999", "X2000", 
"X2001", "X2002", "X2003"), value = c(NA, NA, NA, NA, NA, NA, 
NA, NA, 90.8, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), 
row.names = c(NA, -20L), class = c("tbl_df", "tbl", "data.frame"))
 

Это код для моего точечного графика: —

 practiceplot <- ggplot(pivoteddata, aes(x=year, y=value, group=country, 
                        color=country, size=10))  
  geom_line()   geom_point()
 

…и как это выглядит: —

Ось X с использованием исходных значений

Я хочу изменить значения оси x, поэтому добавлено в код :-

 ggplot(pivoteddata, aes(x=year, y=value, group=country, 
                        color=country, size=10))  
  **scale_x_discrete(breaks = c(5, 10, 15, 20, 25, 30, 35), 
                     labels = c("1985", "1990", "1995", "2000", "2005", 
                                "2010", "2015"))**
 

Новые значения не отображаются на оси x. Что я делаю не так?

Спасибо

введите описание изображения здесь

Комментарии:

1. Можете ли вы опубликовать образцы данных? Пожалуйста, отредактируйте вопрос с выводом dput(pivoteddata) . Или, если оно слишком велико с выводом dput(head(pivoteddata, 20)) .

2. > сводка (сводные данные) значение года страны Бельгия : 35 Продолжительность: 175 мин. : 54,50 Франция : 35 Класс : символ 1-й Кв .: 80,30 Италия : 35 Режим : символ Медиана : 86,10 Испания : 35 Среднее значение : 82,37 США: 35 3-й Кв.: 87,55 Афганистан : 0 Макс. : 95,50(Другое): 0

3. Спасибо за краткое изложение, но этого недостаточно для построения данных. Пожалуйста, опубликуйте вывод dput команды, как указано в моем первом комментарии.

4. > dput(head(pivoteddata, 2)) класс = «фактор»), год = c(«X1984», «X1985»), значение = c(NA_real_, NA структура (список (страна = структура(c(10L, 10L), .Label = c(«Афганистан», «Албания», «Алжир»…), row.names = c(NA, -2L), class = c(«tbl_df», «tbl», «data.frame»))

5. Почти готово! Это всего 2 значения, а не 20. И начало вывода отсутствует.

Ответ №1:

Не имея ваших данных, я бы сказал, что вы должны использовать scale_x_continuous() вместо scale_x_discrete()

Ответ №2:

Вы должны опубликовать воспроизводимый пример, чтобы знать, что class(year) это такое. Предполагая, что это a factor , попробуйте следующее:

 ggplot(pivoteddata, aes(x=year, y=value, group=country, 
                        color=country, size=10))  
  scale_x_discrete(breaks = c("1985", "1990", "1995", "2000", "2005", 
                              "2010", "2015"), 
                   labels = c("1985", "1990", "1995", "2000", "2005", 
                              "2010", "2015"))