快速做效果图的网站叫什么区别/seo技术培训教程视频
概述
matplotlib
没有提供原生的象形图接口。通过第三方库pywaffle
可以生成简易象形图。
pywaffle
是一个用于绘制华夫饼图的第三方库,支持使用Font Awesome
作为自定义图形。
文档见https://pywaffle.readthedocs.io/en/latest/
安装
$ pip install pywaffle
简易应用:华夫饼图
pywaffle
的应用非常简单。首先将Waffle
类传递给matplotlib.pyplot.figure
函数的FigureClass
参数,然后通过设置matplotlib.pyplot.figure
函数的参数即可完成华夫饼图的定制。
import matplotlib.pyplot as plt
from pywaffle import Waffle
plt.figure(FigureClass=Waffle,rows=5,columns=10, # Either rows or columns could be omittedvalues=[30, 16, 4]
)
plt.show()
实现象形图
由于华夫饼图和象形图之间是有一定差别的,需要设置一些关键参数。
icons
:设置各类别使用的图标。取值为Font Awesome
的图标名称,名称定义见pywaffle.fontawesome_mapping.icons
。类型为字符串或字符串列表。columns
:设置图标的最大列数,需要同时设置vertical=True
。starting_location
:设置类别的起始位置。starting_location='NW'
即从左上角开始排列。block_arranging_style = 'new-line'
:设置每个类别新起一行。icon_legend
:设置图标图例。
import numpy as np
import matplotlib.pyplot as plt
from pywaffle import Waffle# 设置中文字体
plt.rcParams["font.family"] = "simhei"
# 构造数据
data = np.array([150, 115, 100])
# 构造图例标签
labels = ["晴", "小雨", "多云"]
# 构造最大列数
columns = 15
plt.figure(FigureClass=Waffle,# 构造列数columns=columns,# 设置类别图标icons=["sun", "cloud-rain", "cloud"],# 设置类别颜色colors=["#FFA500", "#4384FF", "#C0C0C0"],# 垂直排列分类vertical=True,# 从左上角开始排列starting_location="NW",# 设置每个分类另起一行block_arranging_style="new-line",# 设置图标间隙interval_ratio_x=1.5,interval_ratio_y=1.5,# 值缩放处理values=data * columns / data.max(),# 设置标题title={"label": "天气指数","loc": "left","fontdict": {"fontsize": 20,},"pad": 20,},# 设置图例标签labels=[f"{k} ({v}天)" for k, v in zip(labels, data)],# 设置图例位置、排列方式legend={"loc": "lower left","bbox_to_anchor": (0, -0.4),"ncol": len(data),"framealpha": 0,"fontsize": 16,},# 设置图标图例icon_legend=True,# 设置图像大小figsize=(13, 5),
)plt.show()