Stata 和 R 语言绘图中如何快速的使用调色板?(新)

之前给大家分享过我开发的一个配色选择网页应用,最近借助 AI 工具重新编写了这个应用,功能更强大,使用更方便!再次分享给大家!

链接:https://tidyfriday.cn/colors/
旧版本链接:https://tidyfriday.cn/colors-old/

建议加入到电脑的收藏夹里面!

这个应用是根据 ColorBrewer 网站修改之后部署到我的服务器上的,特别适合 R 语言和 Stata 用户使用,另外还增加了不少颜色选择方案(涵盖 paletteer 包包含的所有配色方案),使用起来非常方便。

颜色来源

该网站主要是包含了 Colorbrewer 调色板和 paletteer 包包含的所有配色方案。Colorbrewer 调色板包含了下面四种类色的颜色方案:

  1. 发散;
  2. 定性;
  3. 单色;
  4. 连续。

其中定性调色板适合于分类变量,另外三种适用于连续变量(体现大小、前后关系的);

paletteer 包是 R 语言中调色板的汇总包,包含了上千种调色板:

你想要的颜色,这里基本都有。

数量设置与反序

除了调色板自带的数量,该应用还可以设置 2-60 范围的颜色自动插值:

这样就避免了颜色数量不足的问题。

如果需要把颜色反过来,勾选 颜色反向排序 即可:

RGB 与 HEX

Stata 绘图中通常使用 RGB 颜色代码,使用该应用可以非常方便的复制颜色,点击网页上的 复制 Stata 用 即可得到:

“251 164 117” “134 143 148” “132 120 121” “244 97 36” “133 147 157” “116 137 154” “194 66 28” “143 35 55” “162 84 75” “250 212 87”

绘图使用:

use "中债国债到期收益率数据(截止2024年7月23日).dta", clear

line rate1m rate3m rate6m rate1y rate2y ///
rate3y rate5y rate7y rate10y rate20y date, ///
xlabel(#6, ang(20)) xti("日期") yti("国债收益率") ///
leg(order(1 "1 月期" ///
2 "3 月期" ///
3 "6 月期" ///
4 "1 年期" ///
5 "2 年期" ///
6 "3 年期" ///
7 "5 年期" ///
8 "7 年期" ///
9 "10 年期" ///
10 "20 年期") pos(1) ring(0) col(3)) ///
lc("251 164 117" "134 143 148" "132 120 121" "244 97 36" "133 147 157" "116 137 154" "194 66 28" "143 35 55" "162 84 75" "250 212 87") lp(solid ...) ///
ti("中债国债到期收益率期限结构") ///
subti("爬取 & 整理:微信公众号 RStata") ///
caption("数据来源:中国债券信息网<https://yield.chinabond.com.cn/cbweb-mn>")

gr export "中债国债到期收益率期限结构.png", replace width(4800)

如果使用 R 语言可以点击 复制 R 语言使用,就会得到:

c("#FBA475","#868F94","#847879","#F46124","#85939D","#74899A","#C2421C","#8F2337","#A2544B","#FAD457")

绘图:

# 加载所需包
library(haven)
library(tidyverse)
library(scales)

# 1. 读取Stata dta数据
df <- read_dta("中债国债到期收益率数据(截止2024年7月23日).dta")

# 2. 宽数据转为长数据(ggplot绘图必须长格式)
df_long <- df %>%
pivot_longer(
cols = c(rate1m, rate3m, rate6m, rate1y, rate2y, rate3y, rate5y, rate7y, rate10y, rate20y),
names_to = "term_code",
values_to = "yield_rate"
) %>%
# 匹配期限中文标签(和Stata图例顺序完全一致)
mutate(
term_name = factor(
term_code,
levels = c("rate1m", "rate3m", "rate6m", "rate1y", "rate2y", "rate3y", "rate5y", "rate7y", "rate10y", "rate20y"),
labels = c("1 月期", "3 月期", "6 月期", "1 年期", "2 年期", "3 年期", "5 年期", "7 年期", "10 年期", "20 年期")
)
)

color_hex <- c("#FBA475","#868F94","#847879","#F46124","#85939D","#74899A","#C2421C","#8F2337","#A2544B","#FAD457")

# 4. ggplot2绘图(1:1复刻Stata图表样式)
p <- ggplot(df_long, aes(x = date, y = yield_rate, color = term_name)) +
geom_line(linewidth = 1) +
# 坐标轴设置
labs(
x = "日期",
y = "国债收益率",
color = "期限",
title = "中债国债到期收益率期限结构",
subtitle = "爬取 & 整理:微信公众号 RStata",
caption = "数据来源:中国债券信息网<https://yield.chinabond.com.cn/cbweb-mn>"
) +
# 自定义线条颜色
scale_color_manual(values = color_hex) +
scale_x_date(date_labels = "%Y-%m", expand = c(0.02, 0.02))

ggsave(
filename = "中债国债到期收益率期限结构-R.png",
plot = p,
width = 12,
height = 7,
dpi = 300,
device = png
)

更多应用

除了这个,我还在个人网站上公开了其它的一些好用网页应用:https://tidyfriday.cn/books/

(pic6.png)

点击这里跳转到 RStata 短书平台获取附件:Stata 和 R 语言绘图中如何快速的使用调色板?(新)

评论