如何修改quantmod包中chart_Series()的坐标轴数值颜色?
解决quantmod::chart_Series()纵轴刻度颜色不跟随par设置的问题
问题原因
chart_Series()基于独立的绘图框架,并不完全继承基础绘图系统par()的所有设置,坐标轴相关样式由其内置主题控制,因此直接用par(col.axis=4)只能影响横轴,纵轴需要单独配置。
解决方法
方法1:用chart_theme()统一配置主题
这是最规范的方式,通过自定义主题一次性设置所有坐标轴及图表样式:
library(quantmod) # 获取示例数据 getSymbols("AAPL", src = "yahoo", from = "2023-01-01", to = "2023-03-01") # 创建并配置自定义主题 my_theme <- chart_theme() my_theme$col$axis.text <- 4 # 同时设置横纵轴刻度文字颜色(对应par(col.axis=4)) my_theme$col$axis <- 2 # 设置坐标轴线条颜色(对应par(fg=2)) my_theme$col$bg <- 1 # 设置图表背景色(对应par(bg=1)) # 应用主题绘制图表 chart_Series(AAPL, theme = my_theme)
方法2:直接修改已绘制图表的纵轴组件
如果已经绘制了图表,可直接修改对象的纵轴属性来调整颜色:
# 先绘制基础图表 p <- chart_Series(AAPL) # 修改左侧纵轴刻度文字颜色 p$Env$axes$left$col$text <- 4 # 重新渲染图表 print(p)
补充说明
如果需要更细粒度的控制,比如单独修改纵轴线条颜色、刻度线颜色,可在my_theme中添加对应配置:
my_theme$col$axis.line <- 2 # 坐标轴线条颜色 my_theme$col$ticks <- 2 # 刻度线颜色
内容的提问来源于stack exchange,提问作者mr.T
相关产品推荐
相关产品推荐

