如何使用多条不同长度的行来格式化 ggplot 中的行大小?
How to format line size in ggplot with multiple lines of different lengths?
我能够正确绘制绘图,但我想增加线条大小以使绘图更具可读性。当我尝试 geom_line 内的尺寸时,我的线条变得超级粗。
我在数据框“数据”中有三个时间序列变量(x、y、z),我想在 y 轴上绘制它们,它们的长度不同,这意味着绘图在不同的时间开始。
如何在不使线条变大的情况下更改线条的大小?
P_comp <- ggplot(data, aes(x=Date))+
geom_line(aes(y = x, colour = "green"))+
geom_line(aes(y = y, colour = "darkred"))+
geom_line(aes(y = z, colour = "steelblue"))+
theme_ipsum()+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())+
theme(text = element_text(family = "serif"))+
xlab("Time") + ylab("Value") +
ggtitle("EPU Indices")+
theme(plot.title = element_text(hjust = 0.5, family = "serif", face = "plain", size = 16))+
theme(axis.title.x = element_text(hjust = 0.5, family = "serif", size = 12, face = "plain"))+
theme(axis.title.y = element_text(hjust = 0.5, family = "serif", size = 12, face = "plain"))
P_comp
您的代码片段未在此处显示,但听起来您正在 aes()
语句中设置 size = 1
。这将添加一个名为“1”的尺寸美学,并自动为其分配一个尺寸。
试试这个:geom_line(aes(y = x, colour = "green"), size = 1)
可以使用 scale_size_*
比例之一设置线宽。在下面的示例中,我将使用 scale_size_manual
.
线宽将设置为分类变量的每个级别一个值,"group
。
在第一个示例中,线条大小设置为值 1:3
,使线条更粗。
library(ggplot2)
ggplot(df1, aes(Date, y, color = group)) +
geom_line(aes(size = group)) +
scale_size_manual(values = 1:3) +
theme_bw()
现在让线条更细一些。其余剧情同上。
ggplot(df1, aes(Date, y, color = group)) +
geom_line(aes(size = group)) +
scale_size_manual(values = (1:3)/5) +
theme_bw()
数据
df1 <- iris[4:5]
df1$Date <- rep(seq(Sys.Date() - 49, Sys.Date(), by = "day"), 3)
names(df1)[1:2] <- c("y", "group")
我能够正确绘制绘图,但我想增加线条大小以使绘图更具可读性。当我尝试 geom_line 内的尺寸时,我的线条变得超级粗。 我在数据框“数据”中有三个时间序列变量(x、y、z),我想在 y 轴上绘制它们,它们的长度不同,这意味着绘图在不同的时间开始。 如何在不使线条变大的情况下更改线条的大小?
P_comp <- ggplot(data, aes(x=Date))+
geom_line(aes(y = x, colour = "green"))+
geom_line(aes(y = y, colour = "darkred"))+
geom_line(aes(y = z, colour = "steelblue"))+
theme_ipsum()+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())+
theme(text = element_text(family = "serif"))+
xlab("Time") + ylab("Value") +
ggtitle("EPU Indices")+
theme(plot.title = element_text(hjust = 0.5, family = "serif", face = "plain", size = 16))+
theme(axis.title.x = element_text(hjust = 0.5, family = "serif", size = 12, face = "plain"))+
theme(axis.title.y = element_text(hjust = 0.5, family = "serif", size = 12, face = "plain"))
P_comp
您的代码片段未在此处显示,但听起来您正在 aes()
语句中设置 size = 1
。这将添加一个名为“1”的尺寸美学,并自动为其分配一个尺寸。
试试这个:geom_line(aes(y = x, colour = "green"), size = 1)
可以使用 scale_size_*
比例之一设置线宽。在下面的示例中,我将使用 scale_size_manual
.
线宽将设置为分类变量的每个级别一个值,"group
。
在第一个示例中,线条大小设置为值 1:3
,使线条更粗。
library(ggplot2)
ggplot(df1, aes(Date, y, color = group)) +
geom_line(aes(size = group)) +
scale_size_manual(values = 1:3) +
theme_bw()
现在让线条更细一些。其余剧情同上。
ggplot(df1, aes(Date, y, color = group)) +
geom_line(aes(size = group)) +
scale_size_manual(values = (1:3)/5) +
theme_bw()
数据
df1 <- iris[4:5]
df1$Date <- rep(seq(Sys.Date() - 49, Sys.Date(), by = "day"), 3)
names(df1)[1:2] <- c("y", "group")