#r #ggplot2 #geom-point
#r #ggplot2 #геометрическая точка
Вопрос:
Я пытаюсь создать линию тренда, используя один столбец, показывающий месяцы. Я бы хотел, чтобы он подсчитывал количество случаев, когда продукт был куплен в этом месяце, и показывал зависимость между количеством купленных продуктов в определенном месяце. Я знаю, что мог бы показать это с помощью гистограммы, однако я бы гораздо больше предпочел сделать это с линией, проходящей через все месяцы и создающей пики и минимумы продаж.
Я также пытался сделать границу вокруг круговой диаграммы с этим же набором данных, но я не могу найти, как я могу сделать так, чтобы обойти семгенты данных, не каждый отдельный случай.
Вот мой код для линии тренда:
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()
)