python调用动态库出现error193_Pygal 是一个 Python 开发的动态 SVG 图表库:介绍和数据可视化...

1 说明:

=====

1.1 Pygal 是另一个简单易用的数据图库,它以面向对象的方式来创建各种数据图。

1.2 Pygal 可以非常方便地生成各种格式的数据图,包括 PNG、SVG 等。

1.3 Pygal 也可以生成 XML etree、HTML 表格(这些都需要安装其他包)。

1.4 优点:支持中文,自动配色且优美,交互性强,代码简单。

26ed539d6e33aaadb614ca08f2eeec6e.png

2 准备:

=====

2.1 环境:

华为笔记本电脑、深度deepin-linux操作系统、python3.8和微软vscode编辑器。

2.2 安装:

pip install pygal#本机安装#sudo pip3.8 install pygal  #没反应#推荐国内源安装#sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple pygal #超快
#Python框架-pygal之世界地图pip install pygal_maps_world#本机安装,推荐国内源安装sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple pygal_maps_world

2.3 官网地址:

http://www.pygal.org/en/stable/documentation/first_steps.htmlhttp://www.pygal.org/en/stable/documentation/types/index.html#chart-typeshttps://github.com/Kozea/pygal

3 数据可视化:

==========

3.1 饼图

3.1.1 代码:

import pygal# 数据,形式字典data = {'苹果':0.16881, '花生':0.14996, '梨子':0.07471, '桃子':0.06992, '西瓜':0.04762, '芒果':0.03541, '桔子':0.02925, '杨梅':0.02411, '香蕉':0.06316, '哈密瓜':0.01409, '樱桃':0.36326}# 创建图(饼图)graph = pygal.Pie()    # 从字典中添加数据for k in data.keys():    graph.add(k, data[k])# 设置图标题graph.title = '2020年5月水果销售情况'     # 设置图例位置(下面)graph.legend_at_bottom = True                  # 指定路径和目录保存,文件名为:fruitpie.svggraph.render_to_file('/home/xgj/Desktop/pygal/fruitpie.svg') 

3.1.2 具体操作步骤和效果图:

c918f8b882385fb4d52b60b723e8e1ce.gif
facd24e042de294f113927269a4f0414.gif

3.2 空心饼图:

3.2.1 代码:

import pygal# 数据,形式字典data = {'苹果':0.16881, '花生':0.14996, '梨子':0.07471, '桃子':0.06992, '西瓜':0.04762, '芒果':0.03541, '桔子':0.02925, '杨梅':0.02411, '香蕉':0.06316, '哈密瓜':0.01409, '樱桃':0.36326}graph = pygal.Pie()for k in data.keys():    graph.add(k, data[k])graph.title = '2020年5月水果销售情况'graph.legend_at_bottom = True#空心饼图,增加这一行,空心内圆半径比值0.5graph.inner_radius = 0.5     graph.render_to_file('/home/xgj/Desktop/pygal/fruit-inner-pie.svg')

3.2.2 效果图:

89347b0f9debe91908919d3850db235a.gif

3.3 半圆形:

3.3.1 代码:

import pygal# 数据,形式字典data = {'苹果':0.16881, '花生':0.14996, '梨子':0.07471, '桃子':0.06992, '西瓜':0.04762, '芒果':0.03541, '桔子':0.02925, '杨梅':0.02411, '香蕉':0.06316, '哈密瓜':0.01409, '樱桃':0.36326}graph = pygal.Pie()for k in data.keys():    graph.add(k, data[k])graph.title = '2020年5月水果销售情况'graph.legend_at_bottom = True#半圆饼图:增加这一行graph.half_pie = True    graph.render_to_file('/home/xgj/Desktop/pygal/fruit-half-pie.svg')

3.3.2 效果图:

a11662893079faa869536ef1ada1ea0e.gif

=====请注意:小不规范(故意的),在python中命名,建议这样:fruit_half_pie.svg=====

3.4 柱状图:

3.4.1 代码:

'''#方法一:import pygal                                                       bar_chart = pygal.Bar()                                            bar_chart.add('Firsrt组', [0, 1, 1, 2, 3, 5, 8, 13])  bar_chart.add('Second组', [55, 34, 21, 13, 8, 5, 3, 2]) bar_chart.render_to_file('/home/xgj/Desktop/pygal/bar_chart.svg') '''#方法二:import pygal                                                       bar_chart = pygal.Bar() #数据data0=[0, 1, 1, 2, 3, 5, 8, 13]data1=[55, 34, 21, 13, 8, 5, 3, 2]labels=['Firsrt组','Second组']#第一条barbar_chart.add(labels[0], data0) #第二条bar bar_chart.add(labels[1], data1)#当然,也可以第n条bar......#默认左上角,也可自定义如下#bar_chart.legend_at_bottom = Truebar_chart.render_to_file('/home/xgj/Desktop/pygal/bar_chart.svg') 

3.4.2 以上故意中英文定义:看看中文支持否;数据两种布局,主要是为了今后用python从外部读取数据做准备。

3.4.3 效果图:

945d12de331734c7203a60313d170e7d.gif

3.5 stackbar叠柱图:

3.5.1 代码:

import pygal# 数据读取年的数据,并字符串化year_data = [str(i) for i in range(2011, 2020)]#数据banana_data = [3500,4300,7500,5500,3200,2100,4700,6100,3900]apple_data =[3100,3400,5100,2700,3800,2600,3200,4200,4700]# 创建图(叠加柱状图)garph = pygal.StackedBar()    #garph = pygal.Dot()     # 创建图(点图)#garph = pygal.StackedLine()    # 创建图(叠加折线图)# 添加数据garph.add('香蕉的历年销量', banana_data)garph.add('苹果的历年销量', apple_data)garph.x_labels = year_data            # 设置 X 轴刻度garph.y_label_rotation = 45           # 设置Y轴的标签旋转多少度garph.title = '香蕉与苹果历年的销量分析'  # 设置图标题garph.x_title = '年份'                 # 设置 X 轴标题garph.y_title = '销量(吨)'            # 设置 Y 轴标题garph.legend_at_bottom = True         # 设置图例位置(下面)# 设置页边距(margin_bottom、margin_top、margin_left、margin_right)garph.margin = 35    garph.show_x_guides = True    # 显示X轴的网格线garph.show_y_guides = True    # 显示Y轴的网格线# 输出到图片文件garph.render_to_file('/home/xgj/Desktop/pygal/stackbar.svg') 

3.5.2 效果图:

3e3a49e246f96d9cc0e6644f9a78cb57.gif

3.5 单个直方图:

3.5.1 代码:

import pygal#直方图data = [1,2,3,1,2,3,1,2,3,4,5,6,1,1,1,1,1]#Python set() 函数# 重复的被删除x_value = list(set(data))#统计freq = []for i in x_value:    #data.count(i) #计算data中某个数,比如1,有几个=8个    res = data.count(i)    #append添加到列表中    freq.append(res)#可视化hist = pygal.Bar()#标题hist.title = "直方图"hist._x_title = 'x坐标'hist._y_title = 'y坐标'hist.x_labels = x_valuehist.add('人数',freq)       #添加到图表#图表渲染为svg,用浏览器打开svg文件hist.render_to_file("/home/xgj/Desktop/pygal/a.svg")

3.5.2 复习python的基础知识:注释里有。

3.5.3 效果图:

012a4fc5ef9bf7f237c7603aeb31c1ba.png

3.6 自定义直方图:

3.6.1 代码:

import pygalhist = pygal.Histogram()#(y轴高度,x轴开始坐标,x轴结束坐标)hist.add('人数',[(4,1,1.5),(5,2,2.5),(6,3,3.5)])#标题hist.title = "自定义直方图"hist.render_to_file("/home/xgj/Desktop/pygal/a1.svg")

3.6.2 效果图:

6a5de69d62fc5a410899e895e3188836.png

4 浏览器自动打开数据可视化:

======================

4.1 提前安装:lxml

#安装lxml:pip install lxml#本机安装:sudo pip3.8 install lxml  #很慢#sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple lxml  #超快

4.2 雷达图的示例的代码:

import pygal#数据pythond = [48,60,60,34,30]JavaScriptd = [41,56,73,32,30]cd = [55,70,54,39,50]#标签labels = ['下载量','提交量','薪酬','人数','普及']#雷达图设计(Radar:雷达、Bar:柱状、Line:线状),对应修改即可rader_chart = pygal.Radar()rader_chart.title = "3组计算机语言的数据比较"#添加各个顶点含义rader_chart.x_labels = labelsrader_chart.add("python",pythond)   rader_chart.add("JavaScript",JavaScriptd)rader_chart.add("C",cd)#将数据渲染到浏览器;这是启动自动浏览器打开才有这样的#文件默认保存地址和名称:file:///tmp/tmp5ehvol2e.html,随机文件名rader_chart.render_in_browser()  #如果没有安装,就报错,安装lxml就可以了

4.3 操作步骤和效果图:

6d489ea7226f6be9e56c98007d122d01.gif

5 世界地图绘制:

============

5.1 代码来源:

#https://www.cnblogs.com/keqipu/p/7283991.html

5.2 代码:

import pygal.maps.worldworldmap_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'])worldmap_chart.render_to_file('/home/xgj/Desktop/pygal/world-map.svg')

5.3 效果图:

299303b21babd96eed85db62522e2c18.png

===非常不错===

自己整理并分享出来,喜欢的就点赞、转发、评论和收藏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值