如何解决如何在折线图上添加端点的数据值以及图表标题旁边的百分比变化?
我有以下数据框 (df1) 及其对应的 ggplot2
折线图。我的 R
代码如下:
codes_list <- read.csv("codes_list.csv",stringsAsFactors=FALSE)
inner_join(df1,codes_list,by = c('ticker' = 'code')) %>%
ggplot(aes(x = ref.date,y = price.close)) +
geom_line() +
facet_wrap(~desc,scales = 'free_y')
"codes_list.csv" 是 df1
中股票代码缩写的查找文件。
df1
的摘录如下:
price.close ticker ref.date
18.01 AAN 2020-12-21
17.13 AAN 2020-12-22
16.75 AAN 2020-12-23
16.78 AAN 2020-12-24
65.62 CROX 2020-12-21
64.76 CROX 2020-12-21
64.59 CROX 2020-12-21
62.59 CROX 2020-12-21
gplot2
图表的摘录如下所示。
我想在折线图上添加以下内容:
- 起始值及其对应的结束值
- 折线图标题旁边的百分比变化
预期输出如下所示:
请问我怎样才能做到这一点?
解决方法
您可以通过 arrange
和 ticker
ref.date
数据,在股票代码值中添加百分比变化,创建一个新的 label
列,仅保留第一个和最后一个值并绘制数据。
library(dplyr)
library(ggplot2)
df %>%
mutate(ref.date = as.Date(ref.date)) %>%
arrange(ticker,ref.date) %>%
group_by(ticker) %>%
mutate(ticker = paste(ticker,round((last(price.close) -
first(price.close))/last(price.close) * 100,2),'%'),label = replace(round(price.close,-c(1,n()),'')) %>%
ggplot(aes(x = ref.date,y = price.close,label = label)) +
geom_line() + geom_text() +
facet_wrap(~ticker,scales = 'free_y')
根据您的实际数据,您可能需要使用 geom_text
、hjust
、vjust
和 nudge_x
等参数调整 nudge_y
中标签的位置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。