【问题标题】:How to add labels and different colors to each line in a chart?如何为图表中的每一行添加标签和不同的颜色?
【发布时间】:2021-09-03 21:37:52
【问题描述】:

我正在尝试绘制大约 40 只股票的价格图表。我希望每只股票都由一条线表示,该线由股票的股票代码标记并具有不同的颜色。我写了以下代码:

library(ggplot2)
stock_chart <- ggplot(Stock_Dataset, aes(Date, Close)) +
  geom_line(aes(linetype=as.factor(Ticker))) +
  xlab("")
stock_chart

我有以下图表:

我有一些由他们的股票代码标记的行,但不是全部。此外,它看起来令人困惑,因为它们都具有相同的颜色。对于绘制一条对于每个股票代码看起来都不同的线,我将不胜感激。

【问题讨论】:

  • aes内使用color = as.factor(Ticker)
  • 谢谢你给了每一个不同的颜色。不过,对于其中一些人来说,颜色看起来非常相似,因此很难区分。我想知道是否有一种方法可以选择颜色看起来更鲜明,或者让每个股票代码名称也出现在实际图表上的线条旁边?

标签: r plot label


【解决方案1】:

linetypegeom 有一个限制。根据documentation

线型美学可以用整数 (0-6)、名称(0 = 空白、1 = 实线、2 = 虚线、3 = 点线、4 = 点线、5 = 长线、6 = 双线)指定,到离散变量的映射,或一个偶数(最多 8 个)十六进制数字的字符串,它给出了字符串中连续位置的长度。请参阅十六进制字符串演示的示例。

你可以做些什么来包含颜色是这样的

ggplot(Stock_Dataset, aes(Date, Close)) +
  geom_line(aes(linetype=as.factor(Ticker), color = Ticker)) +
  xlab("")

由于您尚未添加任何数据,因此我在 economics_long 上向您显示

library(tidyverse)
library(ggrepel)

economics_long %>%
  group_by(variable) %>%
  mutate(label = ifelse(date == max(date), variable, NA)) %>%
  ggplot(aes(x = date, y = value01, color = variable, label = label)) +
  geom_line() +
  geom_label_repel(aes(label = label),
                   nudge_x = 1,
                   na.rm = TRUE)

reprex package (v2.0.0) 于 2021-06-20 创建

【讨论】:

    猜你喜欢
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多