matplotlib初试--matplotlib的API

matplotlib使用



一、matplotlib的构成

matplotlib有三个的API:

  1. matplotlib.backend_bases.FigureCanvas
  2. matplotlib.backend_bases.Renderer
  3. matplotlib.artist.Artist
    分别对应绘图区域、渲染器以及图表组件。matplotlib基本原理是,使用图标组件Artist管理调用渲染器Renderer,在绘图区域FigureCanvas内绘图。

1.Artist的分类

Artist包含两部分:

primitives
containers
分别为基本要素与容器,二者关系如下图
在这里插入图片描述

二、primitives

primitives 主要依赖几个主要部分:曲线-Line2D,矩形-Rectangle,多边形-Polygon,图像-image。

1.曲线-Line2D主要完成曲线绘制,在整个包中线可以表示连接所有顶点的实线样式,也可以是每个顶点的标记。其主要通过class matplotlib.lines.Line2D函数来实现功能,常用的参数包括:
xdata:需要绘制的line中点的在x轴上的取值,若忽略,则默认为range(1,len(ydata)+1)
ydata:需要绘制的line中点的在y轴上的取值
linewidth:线条的宽度
linestyle:线型
color:线条的颜色
marker:点的标记,详细可参考markers API
markersize:标记的size
绘制直线line

fig, ax= plt.subplots()
lines = [Line2D(np.arange(0, 5), np.arange(0, 5) ** 2), Line2D(np.arange(0, 5), np.arange(0, 5) * 2, color='orange')]
for line in lines:
    ax.add_line(line)
ax.set_xlim(0, 4); ax.set_ylim(2, 11)
plt.show()

在这里插入图片描述
errorbar专门绘制误差线
x:需要绘制的line中点的在x轴上的取值
y:需要绘制的line中点的在y轴上的取值
yerr:指定y轴水平的误差
xerr:指定x轴水平的误差
fmt:指定折线图中某个点的颜色,形状,线条风格,例如‘co–’
ecolor:指定error bar的颜色
elinewidth:指定error bar的线条宽度

fig = plt.figure()
x = np.arange(10)
y = 2.5 * np.cos(x / 20 * np.pi)
yerr = np.linspace(0.05, 0.2, 10)
plt.errorbar(x, y + 3, yerr=yerr, label='both limits (default)');
plt.show()

在这里插入图片描述
2.patches主要用于绘制二维图形。以矩形直方图为例。
matplotlib.pyplot.hist
x: 数据集,最终的直方图将对数据集进行统计
bins: 统计的区间分布
range: tuple, 显示的区间,range在没有给出bins时生效
density: bool,默认为false,显示的是频数统计结果,为True则显示频率统计结果,这里需要注意,频率统计结果=区间数目/(总数*区间宽度),和normed效果一致,官方推荐使用density
histtype: 可选{‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’}之一,默认为bar,推荐使用默认配置,step使用的是梯状,stepfilled则会对梯状内部进行填充,效果与bar类似
align: 可选{‘left’, ‘mid’, ‘right’}之一,默认为’mid’,控制柱状图的水平分布,left或者right,会有部分空白区域,推荐使用默认
log: bool,默认False,即y坐标轴是否选择指数刻度
stacked: bool,默认为False,是否为堆积状图

x=np.random.randint(0,100,100) #生成[0-100)之间的100个数据,即 数据集
bins=np.arange(0,101,10) #设置连续的边界值,即直方图的分布区间[0,10),[10,20)...
plt.hist(x,bins,color='fuchsia',alpha=0.5)#alpha设置透明度,0为完全透明
plt.xlabel('scores')
plt.ylabel('count')
plt.xlim(0,100); #设置x轴分布范围 plt.show()

plt.show()

在这里插入图片描述

三、Object container

容器会包含一些primitives,并且容器还有它自身的属性。主要包括figure、axes、axis、tick。figure相当于画布,axes相当于数据与画布适配器,axis相当于轴、刻度绘制器,tick相当于特殊标记添加器。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值