Python学习笔记(matplotlib篇)--形状
Python学习笔记--形状
参靠视频:《Python数据可视化分析 matplotlib教程》链接:https://www.bilibili.com/video/av6989413/?p=6
所用的库及环境:
IDE:Pycharm
Python环境:python3.7
Matplotlib: Matplotlib 1.11
Numpy: Numpy1.15.
形状
- 前言
- 如何在一个图形中画一个填充好的形状,比如说画一个填充好的圆形,长方形,多边形
- 代码及效果图
1 import numpy as np 2 import matplotlib.pyplot as plt 3 import matplotlib.patches as mpathes 4 5 fig,ax = plt.subplots() 6 xy1 = np.array([0.2,0.2]) 7 xy2 = np.array([0.2,0.8]) 8 xy3 = np.array([0.8,0.2]) 9 xy4 = np.array([0.8,0.8]) 10 #圆形 11 circle = mpathes.Circle(xy1,0.05) 12 ax.add_patch(circle) 13 #长方形 14 rect = mpathes.Rectangle(xy2,0.2,0.1,color='r') 15 ax.add_patch(rect) 16 #多边形 17 polygon = mpathes.RegularPolygon(xy3,5,0.1,color='g') 18 ax.add_patch(polygon) 19 #椭圆形 20 ellipse = mpathes.Ellipse(xy4,0.4,0.2,color='y') 21 ax.add_patch(ellipse) 22 23 plt.axis('equal') 24 plt.grid() 25 plt.show()
- 相关函数介绍
- Circle()
- 文档:https://matplotlib.org/api/_as_gen/matplotlib.patches.Circle.html#matplotlib.patches.Circle
- 简介:在给定半径的xy=(x,y)处创建真圆
- 属性
- xy:圆形的中心(属性名可省略)
- redius:圆形的半径(属性名可省略)
- 更多属性详见文档
- 常见问题
- 问题:画出来的圆形不是正圆,是椭圆
- 原因:因为在绘图时x,y轴的比例不是1:1
- 解决方法:使用函数axis属性置位'equal’,通过改变轴限制来设置相等的缩放
- axis文档:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.axis.html#matplotlib.pyplot.axis
- Rectangle()
- 文档:https://matplotlib.org/api/_as_gen/matplotlib.patches.Rectangle.html#matplotlib.patches.Rectangle
- 简介:在x,y坐标处生成一个长方形,(x,y是长方形左下角的位置)
- 属性
- xy:底部和左侧的矩形坐标(属性名可省略)
- width:矩形宽度(属性名可省略,注意高和宽的顺序,第二个是宽)
- height:矩形高度(属性名可省略,注意高和宽的顺序,第三个是高)
- color :填充的颜色
- 更多属性详见文档
- RegularPolygon()
- 文档:https://matplotlib.org/api/_as_gen/matplotlib.patches.RegularPolygon.html#matplotlib.patches.RegularPolygon
- 简介:以x,y坐标生成多边形
- 属性
- xy:多边形的中心(属性名可省略)
- numVertices:顶点数,或者可以叫做是边数(属性名可省略,注意位置)
- redus:多边形半径(属性名可省略,注意位置)
- color : 填充的颜色
- 更多属性详见文档
- Ellipse()
- 文档:https://matplotlib.org/api/_as_gen/matplotlib.patches.Ellipse.html#matplotlib.patches.Ellipse
- 简介:以xy为中心生成一个椭圆
- 属性
- xy:椭圆的中心
- width:横轴的总长度,(直径)
- height:垂直轴的总长度,(直径)
- 更多属性详见文档
- add_patch()
- 文档:https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.add_patch.html#matplotlib.axes.Axes.add_patch
- 简介:把生成图案绘制到画布上,
- 属性
- p:要添加图案(就是创建图案时的返回值)
- Circle()
- 更多绘制图案的方法请参考文档:https://matplotlib.org/api/patches_api.html?highlight=patches#module-matplotlib.patches
- 结语:
感谢matplotlib提供的文档,感谢麦子学院提供的视频教学