生成Color Bar
先前记录了使用R语言生成特定颜色的colorbar,具体链接为:https://www.cnblogs.com/sangf/p/13689854.html 。但当时生成的colorbar放大的时候,会发现颜色不是连续的。它其实是很多的矩形块。两个块之间会有很细微的断层。这里使用Python来实现同样的功能,并且不会出现断层。
1. 安装依赖包
1.1. 安装Cairo
具体参考cairo官网: https://www.cairographics.org/download/
1.2. 安装drawSvg
pip install drawSvg
https://github.com/cduck/drawSvg
1.3. 安装cairosvg
pip install cairosvg
2. 示例
import drawSvg as draw
import cairosvg
def draw_color_bar():
d = draw.Drawing(200, 20, origin=(0, 0), displayInline=False)
# 颜色梯度,这里可以根据自己的需要使用吸管工具调整colorbar的颜色
colors = draw.LinearGradient(0, 0, 200, 20)
colors.addStop('0%', '#0A0000')
colors.addStop('25%', '#b9301a')
colors.addStop('50%', '#ed662c')
colors.addStop('75%', '#f5bd41')
colors.addStop('100%', '#ffffe8')
d.append(draw.Rectangle(0, 0, 200, 20,
stroke='black', stroke_width=0.002,
fill=colors))
d.setPixelScale(2)
# 将图像保存为svg
d.saveSvg('demo.svg')
# 将svg图像转换为pdf
cairosvg.svg2pdf(url='demo.svg', write_to='demo.pdf')