You need to enable JavaScript to run this app. R使用ggplot绘制股票折线图如何根据涨跌幅正负设置线条颜色
优惠活动
大模型
产品
解决方案
定价
更多

R使用ggplot绘制股票折线图如何根据涨跌幅正负设置线条颜色

R代码修改方案:按股票区间涨跌幅调整折线颜色

核心修改逻辑:

  • 分组计算时先存储区间涨跌幅的中间变量,新增逻辑列标记涨跌幅正负
  • 将折线颜色映射到正负标记列,手动指定正涨跌幅对应蓝色、负涨跌幅对应红色
  • 可选择隐藏颜色图例,避免和分面标题信息重复

修改后完整代码如下:

df1 %>%
  mutate(ref.date = as.Date(ref.date)) %>%
  arrange(ticker, ref.date) %>%
  group_by(ticker) %>%
  # 新增涨跌幅计算、正负标记逻辑
  mutate(pct_change = round((last(price.close) - first(price.close))/first(price.close) * 100, 2),
         ticker = paste(ticker, pct_change, '%'),
         is_gain = pct_change >= 0,
         label = replace(round(price.close,2), -c(1, n()), '')) %>%
  ggplot(aes(x = ref.date, y = price.close, label = label)) + 
  # 将颜色映射到涨跌标记列,不需要图例可保留show.legend参数
  geom_line(aes(color = is_gain), size=1, show.legend = FALSE) + 
  # 手动指定颜色规则:上涨蓝色、下跌红色
  scale_color_manual(values = c("TRUE" = "blue", "FALSE" = "red")) +
  geom_text(size = 3, fontface="bold") + 
  facet_wrap(~ticker, scales = 'free_y')

如果需要保留图例说明颜色含义,删除geom_line中的show.legend = FALSE参数即可。


内容的提问来源于stack exchange,提问作者user3115933

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 20:51:02