Matplotlib添加自定义形状

简介: 绘制图形时我们还需要绘制复杂形状,以使统计图看起来更加高级,考虑到这一需求,Matplotlib提供了大量自定义形状的函数,利用可以在统计图中添加各种复杂形状,以使得所绘制的统计图更加具有高级感。

前言

我们可以用 Matplotlib 绘制出复杂而又精美的统计图,同时也讲解了注释的用法,但是这远远不够,很多时候我们还需要绘制复杂形状,考虑到这一需求,Matplotlib 提供了大量自定义形状的函数,利用可以在统计图中添加各种复杂形状,以使得所绘制的统计图更加具有高级感。

添加形状

我们已经学习了使用 lines 原语制作线条,但是在实际中,我们可能需要更多的形状,使用其他形状的方式与 lines 原语的相同。

importmatplotlib.patchesaspatchesimportmatplotlib.pyplotasplt# 圆形shape=patches.Circle((0, 0), radius=1., color='m')
plt.gca().add_patch(shape)
# 四边形shape=patches.Rectangle((2.5, -.5), 2., 1., color='c')
plt.gca().add_patch(shape)
# 椭圆形shape=patches.Ellipse((0, -2.), 2., 1., angle=45., color='y')
plt.gca().add_patch(shape)
# 花状框shape=patches.FancyBboxPatch((2.5, -2.5), 2., 1., boxstyle='sawtooth', color='b')
plt.gca().add_patch(shape)
# 显示plt.grid(True, alpha=0.3)
plt.axis('scaled')
plt.show()

绘图67.png

Tips:与使用lines原语一样,使用 Matplotlib 其它形状原语进行操作时,必须使用 pyplot.axis() 函数修改图形比例,否则将导致绘制图形不能完整显示。

无论显示哪种形状,其原理都是一样的。在 Matplotlib 中,形状被描述为名为 patch 的路径。matplotlib.patches 模块中提供了几种形状的路径。与线端一样,仅创建路径并不会在屏幕上渲染它,必须明确使用渲染函数 plt.gca()。

matplotlib.patches 模块包含很多路径构造类,常用的主要包括:

路径构造类名

描述

Circle

需要圆心坐标和半径作为参数

Rectangle

需要四边形左下角的坐标和边长作为参数

Ellipse

需要椭圆中心坐标和两轴半长作为参数

FancyBox

这类似于花形框,需要可选参数 boxstyle 指定样式,可选值包括:"larrow"、"rarrow"、"round"、"round4"、"roundtooth"、"sawtooth"以及 "square" 等

自定义形状

除了预定义的形状外,我们还可以使用多边形定义任意形状。

使用多边形

多边形的使用方法与上一部分中路径的使用方法类似:

importnumpyasnpimportmatplotlib.patchesaspatchesimportmatplotlib.pyplotasplttheta=np.linspace(0, 2*np.pi, 8)
points=np.vstack((np.cos(theta), np.sin(theta))).transpose()
plt.gca().add_patch(patches.Polygon(points, color='m'))
plt.grid(True)
plt.axis('scaled')
plt.show()

绘图68.png

Tips:matplotlib.patches.Polygon() 构造函数接受多边形顶点的坐标列表作为输入参数值。

使用路径属性

所有的路径都可以使用线条及填充的属性:包括 linewidth、linestyle、edgecolor、facecolor、hatch 等:

importnumpyasnpimportmatplotlib.patchesaspatchesimportmatplotlib.pyplotasplttheta=np.linspace(0, 2*np.pi, 8)
points=np.vstack((np.cos(theta), np.sin(theta))).transpose()
plt.gca().add_patch(plt.Circle((0, 0), radius=1., color='m'))
plt.gca().add_patch(plt.Polygon(points, closed=None, fill=None, lw=3., ls='dashed', edgecolor='c'))
plt.grid(True)
plt.axis('scaled')
plt.show()

绘图69.png

Tips:上述示例中,使用带有虚线边(ls = 'dashed')的非填充(fill=None)多边形来绘制多边形轮廓,使用此方法,就不必创建多个Line对象来绘制此多边形。

相关文章
|
数据可视化 Python
【100天精通Python】Day62:Python可视化_Matplotlib绘图基础,绘制折线图、散点图、柱状图、直方图和饼图,以及自定义图标外观和功能,示例+代码
【100天精通Python】Day62:Python可视化_Matplotlib绘图基础,绘制折线图、散点图、柱状图、直方图和饼图,以及自定义图标外观和功能,示例+代码
210 0
|
6月前
|
搜索推荐 数据可视化 Python
Matplotlib高级技巧:自定义图表样式与布局
【4月更文挑战第17天】本文介绍了Matplotlib的高级技巧,包括自定义图表样式和布局。通过设置`color`、`linestyle`、`marker`参数,可以改变线条、散点的颜色和样式;使用自定义样式表实现整体风格统一。在布局方面,利用`subplots`创建多子图,通过`gridspec`调整复杂布局,`subplots_adjust`优化间距,以及添加图例和标题增强可读性。掌握这些技巧能帮助创建更具吸引力的个性化图表。
|
Python
Matplotlib自定义统计图比例
图形的比例对于统计图而言至关重要,好的图形比例可以让人方便的获取图形中相关数据间的关系,因此设置图形比例对于统计图而言是至关重要的,本文介绍如何使用Maplotlib修改统计图比例。
1463 0
Matplotlib自定义统计图比例
|
Python
Matplotlib自定义样式绘制精美统计图
matplotlib提供的所有绘图都带有默认样式,但有时需要自定义绘图的颜色和样式,以绘制更加符合审美要求的图像。matplotlib的设计考虑到了此需求,很容易调整matplotlib图形的样式。
823 0
Matplotlib自定义样式绘制精美统计图
|
存储 索引 Python
Matplotlib使用自定义颜色绘制统计图
matplotlib 提供的所有绘图都带有默认样式,但有时可能需要自定义绘图的颜色和样式,以对绘制更加精美、符合审美要求的图像。
1588 0
Matplotlib使用自定义颜色绘制统计图
|
Python 定位技术
Matplotlib 中文用户指南 6 自定义 matplotlib
自定义 matplotlib 原文:Customizing matplotlib 译者:飞龙 协议:CC BY-NC-SA 4.0 使用样式表自定义绘图 style包为易于切换的绘图『样式』增加了支持,它们与matplotlibrc文件参数相同。
767 0
|
索引 Python
Matplotlib 中文用户指南 3.3 使用 GridSpec 自定义子图位置
使用 GridSpec 自定义子图位置 原文:Customizing Location of Subplot Using GridSpec 译者:飞龙 协议:CC BY-NC-SA 4.0 GridSpec 指定子图将放置的网格的几何位置。
1347 0
|
2月前
|
Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
|
2月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
50 1
|
2月前
|
存储 数据可视化 数据挖掘
揭秘!Matplotlib与Seaborn联手,如何让Python数据分析结果一目了然,惊艳全场?
在数据驱动时代,高效直观地展示分析结果至关重要。Python中的Matplotlib与Seaborn是两大可视化工具,结合使用可生成美观且具洞察力的图表。本文通过分析某电商平台的商品销量数据集,展示了如何利用这两个库揭示商品类别与月份间的销售关系及价格对销量的影响。首先使用Matplotlib绘制月份销量分布直方图,再借助Seaborn的箱线图进一步探索不同类别和价格区间下的销量稳定性。
64 10
下一篇
无影云桌面