生成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

https://cairosvg.org

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')

posted @ 2020-10-28 17:38  海拉鲁捡垃圾  阅读(495)  评论(0编辑  收藏  举报