Создание линии тренда из нечисловых данных и фиксация границы на круговой диаграмме

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

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

Вот мой код для линии тренда:

       sprzed$W.jakim.miesiacu.kupil.Pan...Pani.motocykl.<-as.character(sprzed$W.jakim.miesiacu.kupil.Pan...Pani.motocykl.)
    sprzed$W.jakim.miesiacu.kupil.Pan...Pani.motocykl.<-factor(sprzed$W.jakim.miesiacu.kupil.Pan...Pani.motocykl., levels=c("Styczen","Luty","Marzec","Kwiecien","Maj","Czerwiec","Lipiec","Sierpien","Wrzesien","Pazdziernik","Listopad","Grudzien"))
    
    ggplot(sprzed, aes(x=W.jakim.miesiacu.kupil.Pan...Pani.motocykl., y=as.factor(Jakiej.marki.kupil.Pan...Pani.motocykl.))) + 
      geom_point() + 
      geom_smooth(method = "lm")

Для круговой диаграммы:

       p <- ggplot(sprzed, aes(x="",y="",fill=Jakiej.marki.kupil.Pan...Pani.motocykl.)) + 
      geom_bar(stat="identity") + 
      coord_polar("y", start=0)

    p + 
      geom_bar(stat="identity", color='black') +
      guides(fill=guide_legend(override.aes=list(colour=NA)))

[Вот как теперь выглядит круговая диаграмма:]

И мои данные:

       structure(list(Sygnatura.czasowa = c("2020/11/29 5:05:05 PM CET", 
"2020/11/29 5:05:31 PM CET", "2020/11/29 5:05:54 PM CET", "2020/11/29 5:06:10 PM CET", 
"2020/11/29 5:06:23 PM CET", "2020/11/29 5:07:12 PM CET", "2020/11/29 5:08:00 PM CET", 
"2020/11/29 5:08:17 PM CET", "2020/11/29 5:08:21 PM CET", "2020/11/29 5:08:36 PM CET", 
"2020/11/29 5:08:51 PM CET", "2020/11/29 5:09:34 PM CET", "2020/11/29 5:10:10 PM CET", 
"2020/11/29 5:10:27 PM CET", "2020/11/29 5:10:47 PM CET", "2020/11/29 5:10:56 PM CET", 
"2020/11/29 5:11:11 PM CET", "2020/11/29 5:11:20 PM CET", "2020/11/29 5:11:50 PM CET", 
"2020/11/29 5:12:00 PM CET", "2020/11/29 5:12:18 PM CET", "2020/11/29 5:12:21 PM CET", 
"2020/11/29 5:12:53 PM CET", "2020/11/29 5:13:17 PM CET", "2020/11/29 5:13:20 PM CET", 
"2020/11/29 5:14:02 PM CET", "2020/11/29 5:14:25 PM CET", "2020/11/29 5:14:42 PM CET", 
"2020/11/29 5:14:43 PM CET", "2020/11/29 5:15:05 PM CET", "2020/11/29 5:15:07 PM CET", 
"2020/11/29 5:15:22 PM CET", "2020/11/29 5:15:37 PM CET", "2020/11/29 5:16:17 PM CET", 
"2020/11/29 5:16:33 PM CET", "2020/11/29 5:16:46 PM CET", "2020/11/29 5:16:50 PM CET", 
"2020/11/29 5:16:50 PM CET", "2020/11/29 5:17:11 PM CET", "2020/11/29 5:17:12 PM CET", 
"2020/11/29 5:17:20 PM CET", "2020/11/29 5:17:43 PM CET", "2020/11/29 5:17:57 PM CET", 
"2020/11/29 5:17:59 PM CET", "2020/11/29 5:18:35 PM CET", "2020/11/29 5:18:51 PM CET", 
"2020/11/29 5:18:53 PM CET", "2020/11/29 5:19:09 PM CET", "2020/11/29 5:19:26 PM CET", 
"2020/11/29 5:19:32 PM CET", "2020/11/29 5:19:45 PM CET", "2020/11/29 5:19:50 PM CET", 
"2020/11/29 5:19:50 PM CET", "2020/11/29 5:20:26 PM CET", "2020/11/29 5:20:36 PM CET", 
"2020/11/29 5:20:39 PM CET", "2020/11/29 5:21:07 PM CET", "2020/11/29 5:21:09 PM CET", 
"2020/11/29 5:21:30 PM CET", "2020/11/29 5:21:54 PM CET", "2020/11/29 5:22:28 PM CET", 
"2020/11/29 5:22:30 PM CET", "2020/11/29 5:22:45 PM CET", "2020/11/29 5:22:46 PM CET", 
"2020/11/29 5:22:47 PM CET", "2020/11/29 5:23:02 PM CET", "2020/11/29 5:23:22 PM CET", 
"2020/11/29 5:23:38 PM CET", "2020/11/29 5:23:40 PM CET", "2020/11/29 5:23:58 PM CET", 
"2020/11/29 5:24:14 PM CET", "2020/11/29 5:24:18 PM CET", "2020/11/29 5:24:41 PM CET", 
"2020/11/29 5:24:58 PM CET", "2020/11/29 5:25:06 PM CET", "2020/11/29 5:25:25 PM CET", 
"2020/11/29 5:25:48 PM CET", "2020/11/29 5:25:54 PM CET", "2020/11/29 5:27:21 PM CET", 
"2020/11/29 5:27:48 PM CET", "2020/11/29 5:28:20 PM CET", "2020/11/29 5:28:21 PM CET", 
"2020/11/29 5:29:06 PM CET", "2020/11/29 5:29:08 PM CET", "2020/11/29 5:29:57 PM CET", 
"2020/11/29 5:30:08 PM CET", "2020/11/29 5:30:29 PM CET", "2020/11/29 5:30:55 PM CET", 
"2020/11/29 5:30:56 PM CET", "2020/11/29 5:31:08 PM CET", "2020/11/29 5:31:17 PM CET", 
"2020/11/29 5:31:25 PM CET", "2020/11/29 5:31:57 PM CET", "2020/11/29 5:32:16 PM CET", 
"2020/11/29 5:32:32 PM CET", "2020/11/29 5:32:45 PM CET", "2020/11/29 5:33:01 PM CET", 
"2020/11/29 5:33:07 PM CET", "2020/11/29 5:33:35 PM CET", "2020/11/29 5:33:55 PM CET"
), W.ktorym.roku.kupil.Pan...Pani.motocykl. = c(2019L, 2019L, 
2019L, 2019L, 2019L, 2019L, 2019L, 2019L, 2020L, 2019L, 2019L, 
2020L, 2019L, 2019L, 2019L, 2020L, 2019L, 2020L, 2020L, 2019L, 
2019L, 2019L, 2020L, 2019L, 2020L, 2019L, 2020L, 2020L, 2019L, 
2019L, 2020L, 2019L, 2020L, 2020L, 2020L, 2020L, 2020L, 2020L, 
2020L, 2020L, 2019L, 2019L, 2020L, 2019L, 2020L, 2019L, 2020L, 
2020L, 2020L, 2020L, 2019L, 2020L, 2020L, 2020L, 2020L, 2019L, 
2020L, 2019L, 2020L, 2020L, 2020L, 2019L, 2019L, 2020L, 2020L, 
2020L, 2020L, 2020L, 2019L, 2020L, 2019L, 2020L, 2020L, 2019L, 
2019L, 2019L, 2020L, 2019L, 2020L, 2019L, 2019L, 2020L, 2019L, 
2020L, 2019L, 2020L, 2020L, 2019L, 2020L, 2019L, 2020L, 2019L, 
2019L, 2019L, 2019L, 2020L, 2020L, 2019L, 2020L, 2020L), Jakiej.jest.Pan...Pani.plci. = c("Kobieta", 
"Kobieta", "Kobieta", "Kobieta", "Kobieta", "Kobieta", "Kobieta", 
"Mezczyzna", "Mezczyzna", "Mezczyzna", "Mezczyzna", "Kobieta", 
"Mezczyzna", "Kobieta", "Mezczyzna", "Mezczyzna", "Mezczyzna", 
"Mezczyzna", "Mezczyzna", "Mezczyzna", "Mezczyzna", "Mezczyzna", 
"Mezczyzna", "Kobieta", "Kobieta", "Mezczyzna", "Kobieta", "Mezczyzna", 
"Mezczyzna", "Mezczyzna", "Mezczyzna", "Mezczyzna", "Mezczyzna", 
"Mezczyzna", "Mezczyzna", "Kobieta", "Mezczyzna", "Mezczyzna", 
"Kobieta", "Mezczyzna", "Mezczyzna", "Mezczyzna", "Kobieta", 
"Kobieta", "Kobieta", "Mezczyzna", "Kobieta", "Mezczyzna", "Mezczyzna", 
"Kobieta", "Kobieta", "Kobieta", "Kobieta", "Kobieta", "Mezczyzna", 
"Mezczyzna", "Mezczyzna", "Mezczyzna", "Kobieta", "Kobieta", 
"Mezczyzna", "Mezczyzna", "Mezczyzna", "Kobieta", "Kobieta", 
"Kobieta", "Mezczyzna", "Mezczyzna", "Mezczyzna", "Mezczyzna", 
"Mezczyzna", "Kobieta", "Mezczyzna", "Mezczyzna", "Mezczyzna", 
"Mezczyzna", "Mezczyzna", "Mezczyzna", "Mezczyzna", "Mezczyzna", 
"Mezczyzna", "Kobieta", "Mezczyzna", "Mezczyzna", "Mezczyzna", 
"Mezczyzna", "Kobieta", "Mezczyzna", "Mezczyzna", "Mezczyzna", 
"Mezczyzna", "Mezczyzna", "Mezczyzna", "Mezczyzna", "Mezczyzna", 
"Mezczyzna", "Mezczyzna", "Mezczyzna", "Kobieta", "Mezczyzna"
), Jaki.jest.Pana...Pani.status.spoleczny = c("Student", "Pracownik fizyczny", 
"Pracownik fizyczny", "Pracownik umyslowy", "Pracownik fizyczny", 
"Pracownik fizyczny", "Pracownik fizyczny", "Pracownik fizyczny", 
"Student", "Pracownik fizyczny", "Student", "Pracownik fizyczny", 
"Pracownik fizyczny", "Pracownik umyslowy", "Pracownik fizyczny", 
"Bezrobotny", "Bezrobotny", "Pracownik umyslowy", "Pracownik fizyczny", 
"Pracownik fizyczny", "Pracownik umyslowy", "Pracownik fizyczny", 
"Bezrobotny", "Pracownik umyslowy", "Student", "Pracownik umyslowy", 
"Bezrobotny", "Pracownik fizyczny", "Pracownik fizyczny", "Student", 
"Student", "Pracownik fizyczny", "Pracownik fizyczny", "Pracownik umyslowy", 
"Student", "Student", "Pracownik umyslowy", "Pracownik fizyczny", 
"Pracownik umyslowy", "Pracownik fizyczny", "Pracownik umyslowy", 
"Pracownik umyslowy", "Student", "Pracownik umyslowy", "Pracownik fizyczny", 
"Pracownik umyslowy", "Pracownik umyslowy", "Pracownik umyslowy", 
"Pracownik fizyczny", "Student", "Student", "Student", "Pracownik fizyczny", 
"Pracownik umyslowy", "Pracownik fizyczny", "Pracownik umyslowy", 
"Pracownik fizyczny", "Pracownik fizyczny", "Student", "Pracownik umyslowy", 
"Bezrobotny", "Pracownik fizyczny", "Pracownik umyslowy", "Student", 
"Pracownik fizyczny", "Pracownik umyslowy", "Bezrobotny", "Student", 
"Pracownik umyslowy", "Pracownik fizyczny", "Pracownik fizyczny", 
"Bezrobotny", "Student", "Pracownik umyslowy", "Pracownik fizyczny", 
"Pracownik umyslowy", "Pracownik fizyczny", "Pracownik fizyczny", 
"Pracownik fizyczny", "Pracownik fizyczny", "Pracownik fizyczny", 
"Bezrobotny", "Pracownik fizyczny", "Pracownik fizyczny", "Pracownik fizyczny", 
"Student", "Student", "Pracownik umyslowy", "Pracownik umyslowy", 
"Pracownik umyslowy", "Pracownik fizyczny", "Pracownik umyslowy", 
"Pracownik umyslowy", "Pracownik umyslowy", "Pracownik umyslowy", 
"Student", "Pracownik fizyczny", "Pracownik fizyczny", "Pracownik fizyczny", 
"Pracownik fizyczny"), Do.jakiej.grupy.wiekowej.Pan...Pani.nalezy. = c("18 - 25", 
"26 -35", "36 - 45", "46 - 55", "36 - 45", "56 - 65", "46 - 55", 
"36 - 45", "18 - 25", "46 - 55", "18 - 25", "26 -35", "26 -35", 
"26 -35", "> 65", "18 - 25", "18 - 25", "36 - 45", "18 - 25", 
"46 - 55", "56 - 65", "26 -35", "18 - 25", "56 - 65", "18 - 25", 
"46 - 55", "18 - 25", "26 -35", "26 -35", "18 - 25", "18 - 25", 
"46 - 55", "26 -35", "26 -35", "18 - 25", "18 - 25", "46 - 55", 
"26 -35", "26 -35", "26 -35", "46 - 55", "18 - 25", "18 - 25", 
"26 -35", "26 -35", "46 - 55", "18 - 25", "56 - 65", "36 - 45", 
"18 - 25", "18 - 25", "18 - 25", "36 - 45", "18 - 25", "18 - 25", 
"36 - 45", "18 - 25", "18 - 25", "18 - 25", "26 -35", "18 - 25", 
"36 - 45", "36 - 45", "18 - 25", "26 -35", "26 -35", "18 - 25", 
"18 - 25", "56 - 65", "36 - 45", "26 -35", "18 - 25", "26 -35", 
"26 -35", "26 -35", "36 - 45", "26 -35", "46 - 55", "26 -35", 
"26 -35", "26 -35", "18 - 25", "36 - 45", "36 - 45", "56 - 65", 
"18 - 25", "18 - 25", "26 -35", "36 - 45", "36 - 45", "26 -35", 
"46 - 55", "46 - 55", "46 - 55", "36 - 45", "18 - 25", "36 - 45", 
"46 - 55", "26 -35", "46 - 55"), Jaki.kupil.Pan...Pani.motocykl. = c("Uzywany", 
"Uzywany", "Uzywany", "Nowy", "Nowy", "Uzywany", "Nowy", "Nowy", 
"Uzywany", "Uzywany", "Uzywany", "Nowy", "Uzywany", "Uzywany", 
"Uzywany", "Uzywany", "Nowy", "Nowy", "Nowy", "Nowy", "Nowy", 
"Uzywany", "Uzywany", "Nowy", "Uzywany", "Uzywany", "Uzywany", 
"Uzywany", "Uzywany", "Uzywany", "Nowy", "Nowy", "Uzywany", "Uzywany", 
"Uzywany", "Uzywany", "Nowy", "Uzywany", "Uzywany", "Uzywany", 
"Uzywany", "Nowy", "Uzywany", "Nowy", "Uzywany", "Nowy", "Uzywany", 
"Uzywany", "Uzywany", "Nowy", "Nowy", "Uzywany", "Nowy", "Uzywany", 
"Uzywany", "Uzywany", "Uzywany", "Uzywany", "Uzywany", "Uzywany", 
"Uzywany", "Nowy", "Nowy", "Uzywany", "Uzywany", "Nowy", "Nowy", 
"Nowy", "Uzywany", "Uzywany", "Nowy", "Nowy", "Uzywany", "Nowy", 
"Nowy", "Uzywany", "Uzywany", "Uzywany", "Uzywany", "Uzywany", 
"Uzywany", "Nowy", "Uzywany", "Nowy", "Nowy", "Uzywany", "Uzywany", 
"Nowy", "Nowy", "Uzywany", "Uzywany", "Nowy", "Uzywany", "Nowy", 
"Nowy", "Uzywany", "Uzywany", "Nowy", "Uzywany", "Uzywany"), 
    Jakiej.marki.kupil.Pan...Pani.motocykl. = c("Honda", "Honda", 
    "Yamaha", "Kawasaki", "Honda", "Harley Davidson", "Kawasaki", 
    "Junak", "Yamaha", "Romet", "Honda", "Kawasaki", "Bmw", "Suzuki", 
    "Harley Davidson", "Honda", "Honda", "Harley Davidson", "Suzuki", 
    "Bmw", "KTM", "Yamaha", "Junak", "Suzuki", "Suzuki", "Benelli", 
    "Honda", "Yamaha", "Kawasaki", "Honda", "Kawasaki", "Kawasaki", 
    "Bmw", "Honda", "Yamaha", "Yamaha", "KTM", "KTM", "Suzuki", 
    "Yamaha", "Kawasaki", "Yamaha", "Yamaha", "Suzuki", "Yamaha", 
    "Benelli", "Yamaha", "Bmw", "Suzuki", "Romet", "Junak", "Yamaha", 
    "Suzuki", "Suzuki", "Honda", "Romet", "Yamaha", "Honda", 
    "Yamaha", "Yamaha", "Suzuki", "Benelli", "Junak", "Honda", 
    "Suzuki", "Honda", "Kawasaki", "Kawasaki", "Yamaha", "Kawasaki", 
    "Suzuki", "Suzuki", "Yamaha", "Kawasaki", "Yamaha", "Harley Davidson", 
    "Suzuki", "Honda", "Bmw", "Kawasaki", "Kawasaki", "Kawasaki", 
    "Romet", "Junak", "Yamaha", "Junak", "Yamaha", "Honda", "KTM", 
    "Kawasaki", "Romet", "Honda", "Yamaha", "Yamaha", "Honda", 
    "Honda", "Yamaha", "Yamaha", "Honda", "Honda"), Pana...Pani.motocykl.jest. = c("Sprowadzony zza granicy", 
    "Sprowadzony zza granicy", "Sprowadzony zza granicy", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Sprowadzony zza granicy", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Sprowadzony zza granicy", 
    "Kupiony w Polsce", "Sprowadzony zza granicy", "Kupiony w Polsce", 
    "Sprowadzony zza granicy", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Sprowadzony zza granicy", "Sprowadzony zza granicy", "Kupiony w Polsce", 
    "Sprowadzony zza granicy", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Sprowadzony zza granicy", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Sprowadzony zza granicy", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Kupiony w Polsce", "Sprowadzony zza granicy", 
    "Sprowadzony zza granicy", "Sprowadzony zza granicy", "Sprowadzony zza granicy", 
    "Sprowadzony zza granicy", "Sprowadzony zza granicy", "Sprowadzony zza granicy", 
    "Sprowadzony zza granicy", "Sprowadzony zza granicy", "Kupiony w Polsce", 
    "Sprowadzony zza granicy", "Sprowadzony zza granicy", "Sprowadzony zza granicy", 
    "Sprowadzony zza granicy", "Sprowadzony zza granicy", "Kupiony w Polsce", 
    "Sprowadzony zza granicy", "Sprowadzony zza granicy", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Sprowadzony zza granicy", "Sprowadzony zza granicy", 
    "Sprowadzony zza granicy", "Sprowadzony zza granicy", "Kupiony w Polsce", 
    "Kupiony w Polsce", "Sprowadzony zza granicy", "Sprowadzony zza granicy", 
    "Sprowadzony zza granicy", "Sprowadzony zza granicy", "Sprowadzony zza granicy", 
    "Kupiony w Polsce", "Sprowadzony zza granicy", "Sprowadzony zza granicy"
    ), W.jakim.miesiacu.kupil.Pan...Pani.motocykl. = structure(c(1L, 
    3L, 4L, 9L, 10L, 7L, 7L, 6L, 3L, 4L, 1L, 5L, 7L, 9L, 11L, 
    8L, 5L, 5L, 4L, 3L, 6L, 11L, 8L, 9L, 4L, 12L, 5L, 6L, 6L, 
    7L, 3L, 8L, 6L, 10L, 1L, 3L, 4L, 4L, 4L, 6L, 4L, 10L, 4L, 
    3L, 4L, 3L, 1L, 5L, 3L, 2L, 11L, 3L, 7L, 1L, 9L, 5L, 8L, 
    9L, 1L, 2L, 6L, 6L, 3L, 5L, 3L, 4L, 7L, 6L, 10L, 3L, 6L, 
    1L, 10L, 10L, 5L, 1L, 12L, 4L, 2L, 3L, 6L, 6L, 4L, 2L, 4L, 
    7L, 5L, 9L, 6L, 4L, 6L, 1L, 4L, 4L, 9L, 2L, 3L, 4L, 6L, 1L
    ), .Label = c("Styczen", "Luty", "Marzec", "Kwiecien", "Maj", 
    "Czerwiec", "Lipiec", "Sierpien", "Wrzesien", "Pazdziernik", 
    "Listopad", "Grudzien"), class = "factor")), row.names = c(NA, 
-100L), class = "data.frame")

Буду очень благодарен за любые подсказки!

1 ответ

Мне удалось решить проблему с круговой диаграммой, вот как я это сделал:

library(RColorBrewer)

 mypalette<-brewer.pal(10,"RdYlBu")
      
    ggplot(sprzed, aes(x=factor(1), fill=factor(Jakiej.marki.kupil.Pan...Pani.motocykl.))) + 
      geom_bar(width=1, color="black") + 
      scale_fill_manual("Marka motocykla",values = mypalette)+
      coord_polar("y", start=0)+
      theme(text = element_text(size=24),
            axis.title.x=element_blank(),
            axis.text.x=element_blank(),
            axis.ticks.x=element_blank(),
            axis.title.y=element_blank(),
            axis.text.y=element_blank(),
            axis.ticks.y=element_blank()
            )
Другие вопросы по тегам