[英]Creating a line graph using ggplot2
我采用了三個目的和等級來說明如何在ggplot上繪制線條。
數據集:
df <- data.frame(purpose = c("car", "credit card", "debt consolidation"),
a = c(26.64, 24.81, 14.04),
b = c(30.44, 35.27, 27.65),
c = c(23.93, 24.85, 29.06))
將data.frame轉換為堆疊形式:
library(tidyr)
df2 <- df %>%
gather(grade, val, a:c)
繪制折線圖:
ggplot(df2, aes(as.numeric(as.factor(grade)), val, colour=purpose)) +
geom_line() +
scale_x_continuous("Grades", breaks=1:3, labels=c("A", "B", "C"))
您的數據由離散類別(目的和等級)組成,因此折線圖並不適用,因為它暗示着連續過渡。 由於每種目的的等級總和為100%,因此我認為堆疊條形是更好的選擇。
library(dplyr)
library(tidyr)
library(ggplot2)
df1 <- data.frame(purpose = c("car", "credit card", "debt consolidation"),
a = c(26.64, 24.81, 14.04),
b = c(30.44, 35.27, 27.65),
c = c(23.93, 24.85, 29.06),
d = c(11.66, 10.13, 16.96),
e = c(5.18, 3.88, 8.87),
f = c(1.79, 0.90, 2.80),
g = c(0.36, 0.16, 0.62))
df1 %>%
gather(grade, value, -purpose) %>%
ggplot(aes(purpose, value)) +
geom_col(aes(fill = grade)) +
scale_fill_brewer(palette = "Spectral") +
coord_flip()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.