如何在R的vegabrite面积图中添加渐变色
解决vegabrite渐变色面积图的实现问题
要实现从底部白色到顶部深绿色的渐变填充,不能直接给vl_mark_area()的fill传单一颜色,需要通过线性渐变绑定y轴维度来实现。以下是修改后的代码:
library(vegabrite) vl_chart(data = 'https://vega.github.io/vega-editor/app/data/stocks.csv', width = 300, height = 300) %>% vl_filter("datum.symbol == 'GOOG'") %>% vl_mark_area(stroke = "darkgreen", strokeWidth = 2, opacity = 0.4 ) %>% # 定义线性渐变填充,绑定y轴实现上下渐变 vl_fill( vl_gradient( type = "linear", y1 = 1, y2 = 0, # 渐变方向:从底部(y1=1)到顶部(y2=0) stops = list( list(offset = 0, color = "white"), # 底部颜色 list(offset = 1, color = "darkgreen")# 顶部颜色 ) ) ) %>% vl_encode_x(field = 'date', timeUnit = 'yearmonth') %>% vl_axis_x(format = '%Y') %>% vl_encode_y(field = 'price', type = 'quantitative')
关键修改说明:
- 移除了原代码中
fill = 'lightgreen'的单一颜色设置 - 新增
vl_fill()结合vl_gradient()创建线性渐变,通过y1和y2指定渐变沿y轴方向 - 用
stops参数定义渐变的颜色节点:offset=0对应面积底部(y轴最小值),offset=1对应面积顶部(y轴最大值)
内容的提问来源于stack exchange,提问作者Kazuhito
相关产品推荐
相关产品推荐

