如何使用多条不同长度的行来格式化 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")