导出矢量图_Word中矢量图提取

时间:2021年05月19日 07:55:54

Python有很多优秀的可视化库,其中有名的像matplotlib、seaborn、plotly,可以绘制出各式绚丽的图表。

这次介绍一个不那么广为人知但依然优秀的可视化库-Pygal

官网介绍说Pygal是一个性感的Python制表工具,提供了14种图表类型,可以轻松定制出版级别的交互式图表。

相比较seaborn等明星库,Pygal有哪些值得一说的优点呢?

高度可定制,而且用法简单;

图表可交互性强;

图像可导出SVG格式(矢量图形);

与Django、Flask等Web框架高度集成;

Pygal支持哪些图表?

Pygal目前支持的图表有折线图、点图、柱状图、直方图、饼图、雷达图、箱图、气泡图、漏斗图、圆环图、仪表板、漏斗图、热力图、地图。

既可以在浏览器中直接查看图表,或集成到web中,也可以导出图表。

可以导出的格式有:SVG、PNG、Etree、64位URI

Pygal默认在jupyter notebook不显示,需要保存问svg、png等格式,浏览器打开查看,为了便于展示,做了如下设置可在jupyter notebook中展示。

import pygal

#设置pygal与jupyter notebook交互

from IPython.display import display, HTML

base_html = """

{rendered_chart}

"""

安装并导入Pygal

使用pip或者conda进行安装,在命令行输入:

pip install pygal

几秒钟便可安装完成。

安装好后,导入Pygal:

import pygal

这里用的是Jupyter Notebook环境,好了,接下来正式绘图。

绘图步骤

Pygal的用法非常简单,主要分三步:

生成图表对象

导入数据

导出图像

这里简单绘制一个柱状图:

# 导入pygal库

import pygal

# 创建柱状图对象

bar_chart = pygal.Bar()

# 图表命名

bar_chart.title = 'NBA历史得分前五球星数据'

# 添加数据

bar_chart.add('贾巴尔', 38387)

bar_chart.add('马龙', 36928)

bar_chart.add('詹姆斯', 34384)

bar_chart.add('科比', 33643)

bar_chart.add('乔丹', 32292)

# 在浏览器中查看

bar_chart.render_in_browser()

# 导出为矢量图形

bar_chart.render_to_file('NBA.svg')

常见图形

折线图

line_chart = pygal.Line()

line_chart.title = 'Browser usage evolution (in %)'

# 添加x轴标签

line_chart.x_labels = map(str, range(2002, 2013))

# 传入数据

line_chart.add('Firefox', [None, None,    0, 16.6,   25,   31, 36.4, 45.5, 46.3, 42.8, 37.1])

line_chart.add('Chrome',  [None, None, None, None, None, None,    0,  3.9, 10.8, 23.8, 35.3])

line_chart.add('IE',      [85.8, 84.6, 84.7, 74.5,   66, 58.6, 54.7, 44.8, 36.2, 26.6, 20.1])

line_chart.add('Others',  [14.2, 15.4, 15.3,  8.9,    9, 10.4,  8.9,  5.8,  6.7,  6.8,  7.5])

#图片渲染

HTML(base_html.format(rendered_chart=line_chart.render(is_unicode=True)))

柱状图

line_chart = pygal.HorizontalBar()

line_chart.title = 'Browser usage in February 2012 (in %)'

line_chart.add('IE', 19.5)

line_chart.add('Firefox', 36.6)

line_chart.add('Chrome', 36.3)

line_chart.add('Safari', 4.5)

line_chart.add('Opera', 2.3)

#图片渲染

HTML(base_html.format(rendered_chart=line_chart.render(is_unicode=True)))

饼图

pie_chart = pygal.Pie()

pie_chart.title = 'Browser usage by version in February 2012 (in %)'

pie_chart.add('IE', [5.7, 10.2, 2.6, 1])

pie_chart.add('Firefox', [.6, 16.8, 7.4, 2.2, 1.2, 1, 1, 1.1, 4.3, 1])

pie_chart.add('Chrome', [.3, .9, 17.1, 15.3, .6, .5, 1.6])

pie_chart.add('Safari', [4.4, .1])

pie_chart.add('Opera', [.1, 1.6, .1, .5])

#图片渲染

HTML(base_html.format(rendered_chart=pie_chart.render(is_unicode=True)))

环形图

pie_chart = pygal.Pie(inner_radius=.4)

pie_chart.title = 'Browser usage in February 2012 (in %)'

pie_chart.add('IE', 19.5)

pie_chart.add('Firefox', 36.6)

pie_chart.add('Chrome', 36.3)

pie_chart.add('Safari', 4.5)

pie_chart.add('Opera', 2.3)

#图片渲染

HTML(base_html.format(rendered_chart=pie_chart.render(is_unicode=True)))

雷达图

radar_chart = pygal.Radar()

radar_chart.title = 'V8 benchmark results'

radar_chart.x_labels = ['Richards', 'DeltaBlue', 'Crypto', 'RayTrace', 'EarleyBoyer', 'RegExp', 'Splay', 'NavierStokes']

radar_chart.add('Chrome', [6395, 8212, 7520, 7218, 12464, 1660, 2123, 8607])

radar_chart.add('Firefox', [7473, 8099, 11700, 2651, 6361, 1044, 3797, 9450])

radar_chart.add('Opera', [3472, 2933, 4203, 5229, 5810, 1828, 9013, 4669])

radar_chart.add('IE', [43, 41, 59, 79, 144, 136, 34, 102])

radar_chart.render()

#图片渲染

HTML(base_html.format(rendered_chart=radar_chart.render(is_unicode=True)))

箱图

box_plot = pygal.Box()

box_plot.title = 'V8 benchmark results'

box_plot.add('Chrome', [6395, 8212, 7520, 7218, 12464, 1660, 2123, 8607])

box_plot.add('Firefox', [7473, 8099, 11700, 2651, 6361, 1044, 3797, 9450])

box_plot.add('Opera', [3472, 2933, 4203, 5229, 5810, 1828, 9013, 4669])

box_plot.add('IE', [43, 41, 59, 79, 144, 136, 34, 102])

#图片渲染

HTML(base_html.format(rendered_chart=box_plot.render(is_unicode=True)))

环形图

gauge = pygal.SolidGauge(inner_radius=0.70)

percent_formatter = lambda x: '{:.10g}%'.format(x)

dollar_formatter = lambda x: '{:.10g}$'.format(x)

gauge.value_formatter = percent_formatter

gauge.add('Series 1', [{'value': 225000, 'max_value': 1275000}],

formatter=dollar_formatter)

gauge.add('Series 2', [{'value': 110, 'max_value': 100}])

gauge.add('Series 3', [{'value': 3}])

gauge.add(

'Series 4', [

{'value': 51, 'max_value': 100},

{'value': 12, 'max_value': 100}])

gauge.add('Series 5', [{'value': 79, 'max_value': 100}])

gauge.add('Series 6', 99)

gauge.add('Series 7', [{'value': 100, 'max_value': 100}])

#图片渲染

HTML(base_html.format(rendered_chart=gauge.render(is_unicode=True)))

热力图

treemap = pygal.Treemap()

treemap.title = 'Binary TreeMap'

treemap.add('A', [2, 1, 12, 4, 2, 1, 1, 3, 12, 3, 4, None, 9])

treemap.add('B', [4, 2, 5, 10, 3, 4, 2, 7, 4, -10, None, 8, 3, 1])

treemap.add('C', [3, 8, 3, 3, 5, 3, 3, 5, 4, 12])

treemap.add('D', [23, 18])

treemap.add('E', [1, 2, 1, 2, 3, 3, 1, 2, 3,

4, 3, 1, 2, 1, 1, 1, 1, 1])

treemap.add('F', [31])

treemap.add('G', [5, 9.3, 8.1, 12, 4, 3, 2])

treemap.add('H', [12, 3, 3])

#图片渲染

HTML(base_html.format(rendered_chart=treemap.render(is_unicode=True)))

地图

# 使用地图需先安装插件pygal_maps_world

# 在命令行输入:pip install pygal_maps_world

worldmap_chart = pygal.maps.world.World()

worldmap_chart.title = 'Some countries'

worldmap_chart.add('F countries', ['fr', 'fi'])

worldmap_chart.add('M countries', ['ma', 'mc', 'md', 'me', 'mg',

'mk', 'ml', 'mm', 'mn', 'mo',

'mr', 'mt', 'mu', 'mv', 'mw',

'mx', 'my', 'mz'])

worldmap_chart.add('U countries', ['ua', 'ug', 'us', 'uy', 'uz'])

[图片上传中...(image.png-863dc1-1609602511392-0)]

#图片渲染

HTML(base_html.format(rendered_chart=worldmap_chart.render(is_unicode=True)))

常见参数设置

from pygal.style import LightSolarizedStyle

chart = pygal.Bar(margin_bottom=10,#图与低端距离,类似的有上下左右

height=450,

#style=NeonStyle,#设置绘图风格,pygal拥有23种style,

#其它style可选:'BlueStyle', 'CleanStyle', 'DarkColorizedStyle', 'DarkGreenBlueStyle', 'DarkGreenStyle', 'DarkSolarizedStyle', 'DarkStyle', 'DarkenStyle', 'DefaultStyle', 'DesaturateStyle', 'LightColorizedStyle', 'LightGreenStyle', 'LightSolarizedStyle', 'LightStyle', 'LightenStyle', 'NeonStyle', 'ParametricStyleBase', 'RedBlueStyle', 'RotateStyle', 'SaturateStyle', 'SolidColorStyle', 'Style', 'TurquoiseStyle'

##title设置

title=u'Some points', #图标题

x_title='X Axis',#x轴标题

y_title='Y Axis',#y轴标题

##label设置

show_x_labels=True,#显示x轴标签

x_label_rotation=20,#x轴标签倾斜角度

x_labels = list('ABCD'),#自定义x轴标签

value_formatter = lambda x: "%.2f" % x,#y轴刻度值格式化输出

##图例legend设置

show_legend=True,#开启图例

legend_at_bottom=True,#图例放置于底部

legend_at_bottom_columns=2,#图例标签显示行数

legend_box_size=12,#图例前箱子大小

##坐标轴axis设置

include_x_axis=True,#坐标轴开启

range=(0, 30),#设置y轴刻度值范围

secondary_range=(10, 25),#第二坐标轴刻度范围

xrange=(0,10),#x轴刻度范围

##柱子上text设置

print_values=True,#开启柱子上文本

print_values_position='top',#文本位置

style=LightSolarizedStyle(

value_font_family='googlefont:Raleway',#文本字体设置

value_font_size=15,#大小

value_colors=('red','blue'),#颜色设置

)

#chart.x_labels = u'αβγδ'#自定义x轴刻度标签

chart.add('line 1', [5, 15, 10, 8],

secondary=True,#开启第二坐标轴

)

chart.add('line 2', [15, 20, 8, 11])

HTML(base_html.format(rendered_chart=chart.render(is_unicode=True)))

介绍一本非常经典的入门PDF,它讲解的是程序员必知的硬核基础知识,看完能让你对计算机有一个基础的了解和入门,是培养你内核的基础,我们看下目录大纲

现在这本 PDF 免费分享给你,你可以扫描下方二维码回复 os 来领取这本 PDF。

▲长按二维码进行关注▲

▲回复「os」,获取PDF

","force_purephv":"0","gnid":"941e7863b28f00cb7","img_data":[{"flag":2,"img":[{"desc":"","height":"333","title":"","url":"https://p0.ssl.img.360kuai.com/t011013d6c2b1d74060.jpg","width":"640"},{"desc":"","height":"555","title":"","url":"https://p0.ssl.img.360kuai.com/t01e88658eaaf7b307a.jpg","width":"1000"},{"desc":"","height":"492","title":"","url":"https://p0.ssl.img.360kuai.com/t0119c98164782c075b.jpg","width":"824"},{"desc":"","height":"246","title":"","url":"https://p0.ssl.img.360kuai.com/t01918302ccc6f29542.jpg","width":"1000"},{"desc":"","height":"718","title":"","url":"https://p0.ssl.img.360kuai.com/t0181b5701c1995c5be.jpg","width":"1000"},{"desc":"","height":"493","title":"","url":"https://p0.ssl.img.360kuai.com/t012b1c008ef5690f22.jpg","width":"874"},{"desc":"","height":"490","title":"","url":"https://p0.ssl.img.360kuai.com/t01612331efc1aa954d.jpg","width":"837"},{"desc":"","height":"635","title":"","url":"https://p0.ssl.img.360kuai.com/t0107cb0e4211f7dbac.jpg","width":"854"},{"desc":"","height":"637","title":"","url":"https://p0.ssl.img.360kuai.com/t01141f161fef66578e.jpg","width":"857"},{"desc":"","height":"596","title":"","url":"https://p0.ssl.img.360kuai.com/t01b70c91d40da4ed2c.jpg","width":"888"},{"desc":"","height":"486","title":"","url":"https://p0.ssl.img.360kuai.com/t01a26a998c2425fec8.jpg","width":"811"},{"desc":"","height":"547","title":"","url":"https://p0.ssl.img.360kuai.com/t0134c71e00a97a1fb2.jpg","width":"823"},{"desc":"","height":"474","title":"","url":"https://p0.ssl.img.360kuai.com/t01a44540ea0ccabfe7.jpg","width":"764"},{"desc":"","height":"478","title":"","url":"https://p0.ssl.img.360kuai.com/t014a63b0dae93beba0.jpg","width":"792"},{"desc":"","height":"877","title":"","url":"https://p0.ssl.img.360kuai.com/t01ac88134039986e13.jpg","width":"1000"},{"desc":"","height":"212","title":"","url":"https://p0.ssl.img.360kuai.com/t01e27cb46219b72324.jpg","width":"300"}]}],"novel_author":"","novel_name":"","original":"0","pat":"mass_nba,art_src_1,otherc,fts0,sts0","powerby":"pika","pub_time":1610156866000,"pure":"","rawurl":"http://zm.news.so.com/19922973068c291539af77eeeba4ea72","redirect":0,"rptid":"7e626596ef9de0d8","src":"ZAKER汽车","tag":[],"title":"Pygal,可导出矢量图的Python可视化利器

CAD怎样导出矢量图 - ?--->> 材料/工具:CAD1、首先打开AUTOCAD2009,打开需要导出的CAD图.2、通过快捷键或滚动滚轮调节图像至最大.3、打开AUTOCAD2009左上角的【菜单浏览器】,找到【文件】,接着点击【输出】.4、找好储存路径,自命名”文件名“,”文件类型“选择【图元文件】.5、通过选定区域框选出图形.6、选定后(选定后,图像显示虚线),在选定区域点击鼠标右键.7、接下来按照图中所示步骤将该图片插入word8、插如图片后【裁剪】掉图片空白区域.9、裁剪完毕可以尝试随意放大该图片,该图片依然非常清晰.

cad怎么导出矢量图 - ?--->> cad图就是矢量图,你要导出的是什么格式的矢量图,你可以用输出export或打印命令试试,如果这两个命令不支持,那就不行了

ai如何导出矢量图 - ?--->> 在菜单栏里面的 文件-导出,然后选择想要的格式和输入想要的名字就可以了 确定后出现一对话框,可以对导出后的图片的细节属性进行设置

如何导出pdf文件中的矢量图? - ?--->> 单独把那页提取出来,用ps打开就是矢量图

cdr导出矢量图怎么导 - ?--->> 可以导出ai格式的矢量图.

coreldraw 怎样导出矢量图? - ?--->> ★ 不知道你是否会用photoshop呢?我觉得要是想更改图片大小尺寸,还是在ps里修改比较准确和方便些.★ 既然是用coreldraw做的标志,那么你把图跟字都稍微拉大一点,注意要等比例,然后整体导出一张ps格式的图片,导出的时候记得选择“透明背景”选项.★ 然后把导出的那张ps图放在photoshop里,修改其大小为88*31像素,再让它100%显示,看看效果是否达到你想要的呢?★ 如果你标志上的字,只是字体,没有做变化,也可以把字和标识分开来做.标识还像我刚才说那样导出到ps里,字可以选择你要的字体,在ps里加入,这样会清晰些.不知道是否帮到您?

怎么用Photoshop 导出AI格式做矢量图啊 - ?--->> 导出AI格式的方法:画好路径以后,按菜单栏的文件(F)——导出(E)——路径到Illustrator.导出AI格式的路径可用3DMAX进行编辑,方可得到三维的图.

怎么把图片转换成矢量图? - ?--->> 先把矢量图打开(相对应的软件)再导出位图就行了用FLASH比较简单.在"修改"->位图->转换为位图细节度可以调节.其他工具: 2.Adobe Illustrator 评价:酷,但是太...

怎么用Photoshop导出AI格式做矢量图 - ?--->> 文件---导出----路径到illustrater.就可以了 那可能你没用路径了,,你没用钢笔工具画出路径导出是没东西的.应为毕竟是到处路径,没路径怎么到处.想画矢量图就直接用illustrater.跟ps是兄弟软件,界面跟ps几乎一样,但ps侧重制作位图,illastrater侧重做质量图,而且很方便很好用

矢量图

https://www.zhihu.com/topic/19574013/articles