发布时间:2022-10-12 16:30
Matplotlib是一个Python 绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。
Matplotlib试图让简单的事情变得更简单,让无法实现的事情变得可能实现。 只需几行代码即可生成绘图,直方图,功率谱,条形图,错误图,散点图等。
Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包。
1.简单图例绘制
axex: 设置坐标轴边界和表面的颜色、坐标刻度值大 小和网格的显示
backend: 设置目标暑促TkAgg和GTKAgg
figure: 控制dpi、边界颜色、图形大小、和子区 ( subplot)设置
font: 字体集(font family)、字体大小和样式设置
grid: 设置网格颜色和线性
legend: 设置图例和其中的文本的显示
line: 设置线条(颜色、线型、宽度等)和标记
patch: 是填充2D空间的图形对象,如多边形和圆。 控制线宽、颜色和抗锯齿设置等。
savefig: 可以对保存的图形进行单独设置。例如,设 置渲染的文件的背景为白色。
verbose: 设置matplotlib在执行期间信息输出,如 silent、helpful、debug和debug-annoying。
xticks和yticks: 为x,y轴的主刻度和次刻度设置颜色、 大小、方向,以及标签大小。
xlabel与ylabel:设置坐 标轴标签。
xlim与ylim:设置坐标轴数据范围。
grid:设置网格线。
importnumpy as npimportmatplotlib as mplimportmatplotlib.pyplot as plt#x轴的采样点,生成100个元素在0-5之间的等间隔数列
x = np.linspace(0, 5, 100)#y轴
y =x#名称
plt.figure(u'画图')#标题
plt.title(u'测试',fontproperties='SimHei',fontsize=14)#绘制图形
plt.plot(x, y)#图形显示
plt.show()
效果
2.全局设置
#设置黑体
mpl.rcParams['font.sans-serif'] = ['SimHei']#通过rcParams设置全局横纵轴字体大小
mpl.rcParams['xtick.labelsize'] = 12mpl.rcParams['ytick.labelsize'] = 12
# figsize绘图对象的宽度和高度,单位为英寸,dpi绘图对象的分辨率,即每英寸多少个像素,缺省值为80
plt.figure(figsize=(8,6),dpi=100)
以上设置字体可以避免中文乱码
3.横纵轴设置
#设置坐标轴的取值范围
plt.xlim((0, 5))
plt.ylim((0,5))#横坐标名称,标签里面必须添加字体变量:fontproperties='SimHei',fontsize=14。不然可能会乱码
plt.xlabel(u'横坐标',fontproperties='SimHei',fontsize=14)#纵坐标名称,标签里面必须添加字体变量:fontproperties='SimHei',fontsize=14。不然可能会乱码
plt.ylabel(u'纵坐标',fontproperties='SimHei',fontsize=14)#设置x坐标轴刻度,也就是在坐标轴上取11个点,x轴的范围为0到5,所以取11个点之后刻度就变为0.5了
plt.xticks(np.linspace(0, 5, 11))#获取当前的坐标轴, gca = get current axis
ax =plt.gca()#设置右边框和上边框
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')#设置x坐标轴为下边框
ax.xaxis.set_ticks_position('bottom')#设置y坐标轴为左边框
ax.yaxis.set_ticks_position('left')#设置x轴, y周在(0, 0)的位置
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))#设置坐标轴label的大小,背景色等信息
for label in ax.get_xticklabels() +ax.get_yticklabels():
label.set_fontsize(12)
label.set_bbox(dict(facecolor= 'green', edgecolor = 'None', alpha = 0.7))
效果
还可以自定义坐标轴刻度
importmatplotlib.pyplot as pltimportnumpy as npimportdatetimefrom matplotlib.dates importDayLocator, DateFormatter
x= [datetime.date.today() + datetime.timedelta(i) for i in range(30)]
y= np.sin(np.arange(30))
plt.figure(figsize=(12,6))
plt.plot(x, y)#设置X轴的时间间隔,MinuteLocator、HourLocator、DayLocator、WeekdayLocator、MonthLocator、YearLocator
plt.gca().xaxis.set_major_locator(DayLocator(interval=3))#设置X轴的时间显示格式
plt.gca().xaxis.set_major_formatter(DateFormatter('%y/%m/%d'))#自动旋转X轴的刻度,适应坐标轴
plt.gcf().autofmt_xdate()
plt.show()
效果
4.图例设置
#绘制图形
plt.plot(x, y,label=u"直线")#添加图例
plt.legend(loc='upper left')
效果
5.注解设置
#绘制注解二
plt.text(1, 3, r'y = x', fontdict = {'size': 16, 'color': 'red'})
效果
6.折线图
matplotlib.plot(height,width,marker,linewidth,linestyle,color)
height:横坐标数据
width:纵坐标数据
marker:数据点样式
'.'point marker','pixel marker'o'circle marker'v'triangle_down marker'^'triangle_up marker''triangle_right marker'1'tri_down marker'2'tri_up marker'3'tri_left marker'4'tri_right marker's'square marker'p'pentagon marker'*'star marker'h'hexagon1 marker'H'hexagon2 marker'+'plus marker'x'x marker'D'diamond marker'd'thin_diamond marker'|'vline marker'_' hline marker
linewidth:线宽
linestyle:线型样式
'-'solid line style'--'dashed line style'-.' dash-dot line style':'dotted line style
color:颜色
cnames ={'aliceblue': '#F0F8FF','antiquewhite': '#FAEBD7','aqua': '#00FFFF','aquamarine': '#7FFFD4','azure': '#F0FFFF','beige': '#F5F5DC','bisque': '#FFE4C4','black': '#000000','blanchedalmond': '#FFEBCD','blue': '#0000FF','blueviolet': '#8A2BE2','brown': '#A52A2A','burlywood': '#DEB887','cadetblue': '#5F9EA0','chartreuse': '#7FFF00','chocolate': '#D2691E','coral': '#FF7F50','cornflowerblue': '#6495ED','cornsilk': '#FFF8DC','crimson': '#DC143C','cyan': '#00FFFF','darkblue': '#00008B','darkcyan': '#008B8B','darkgoldenrod': '#B8860B','darkgray': '#A9A9A9','darkgreen': '#006400','darkkhaki': '#BDB76B','darkmagenta': '#8B008B','darkolivegreen': '#556B2F','darkorange': '#FF8C00','darkorchid': '#9932CC','darkred': '#8B0000','darksalmon': '#E9967A','darkseagreen': '#8FBC8F','darkslateblue': '#483D8B','darkslategray': '#2F4F4F','darkturquoise': '#00CED1','darkviolet': '#9400D3','deeppink': '#FF1493','deepskyblue': '#00BFFF','dimgray': '#696969','dodgerblue': '#1E90FF','firebrick': '#B22222','floralwhite': '#FFFAF0','forestgreen': '#228B22','fuchsia': '#FF00FF','gainsboro': '#DCDCDC','ghostwhite': '#F8F8FF','gold': '#FFD700','goldenrod': '#DAA520','gray': '#808080','green': '#008000','greenyellow': '#ADFF2F','honeydew': '#F0FFF0','hotpink': '#FF69B4','indianred': '#CD5C5C','indigo': '#4B0082','ivory': '#FFFFF0','khaki': '#F0E68C','lavender': '#E6E6FA','lavenderblush': '#FFF0F5','lawngreen': '#7CFC00','lemonchiffon': '#FFFACD','lightblue': '#ADD8E6','lightcoral': '#F08080','lightcyan': '#E0FFFF','lightgoldenrodyellow': '#FAFAD2','lightgreen': '#90EE90','lightgray': '#D3D3D3','lightpink': '#FFB6C1','lightsalmon': '#FFA07A','lightseagreen': '#20B2AA','lightskyblue': '#87CEFA','lightslategray': '#778899','lightsteelblue': '#B0C4DE','lightyellow': '#FFFFE0','lime': '#00FF00','limegreen': '#32CD32','linen': '#FAF0E6','magenta': '#FF00FF','maroon': '#800000','mediumaquamarine': '#66CDAA','mediumblue': '#0000CD','mediumorchid': '#BA55D3','mediumpurple': '#9370DB','mediumseagreen': '#3CB371','mediumslateblue': '#7B68EE','mediumspringgreen': '#00FA9A','mediumturquoise': '#48D1CC','mediumvioletred': '#C71585','midnightblue': '#191970','mintcream': '#F5FFFA','mistyrose': '#FFE4E1','moccasin': '#FFE4B5','navajowhite': '#FFDEAD','navy': '#000080','oldlace': '#FDF5E6','olive': '#808000','olivedrab': '#6B8E23','orange': '#FFA500','orangered': '#FF4500','orchid': '#DA70D6','palegoldenrod': '#EEE8AA','palegreen': '#98FB98','paleturquoise': '#AFEEEE','palevioletred': '#DB7093','papayawhip': '#FFEFD5','peachpuff': '#FFDAB9','peru': '#CD853F','pink': '#FFC0CB','plum': '#DDA0DD','powderblue': '#B0E0E6','purple': '#800080','red': '#FF0000','rosybrown': '#BC8F8F','royalblue': '#4169E1','saddlebrown': '#8B4513','salmon': '#FA8072','sandybrown': '#FAA460','seagreen': '#2E8B57','seashell': '#FFF5EE','sienna': '#A0522D','silver': '#C0C0C0','skyblue': '#87CEEB','slateblue': '#6A5ACD','slategray': '#708090','snow': '#FFFAFA','springgreen': '#00FF7F','steelblue': '#4682B4','tan': '#D2B48C','teal': '#008080','thistle': '#D8BFD8','tomato': '#FF6347','turquoise': '#40E0D0','violet': '#EE82EE','wheat': '#F5DEB3','white': '#FFFFFF','whitesmoke': '#F5F5F5','yellow': '#FFFF00','yellowgreen': '#9ACD32'}
颜色对应
7.散点图绘制
x = np.random.rand(10)
y = np.random.rand(10)
plt.scatter(x,y)
plt.show()
8.柱状图绘制
x = np.arange(10)
y = np.random.randint(0,30,10)
plt.bar(x, y)
plt.show()
9.饼图
x = np.random.randint(1, 10, 3)
plt.pie(x)
plt.show()
10.直方图
mean, sigma = 0, 1x= mean + sigma * np.random.randn(10000)
plt.hist(x,50)
plt.show()
11.子图
subplot(numRows, numCols, plotNum)
一个Figure对象可以包含多个子图Axes,subplot将整个绘图区域等分为numRows行*numCols列个子区域,按照从左到右,从上到下的顺序对每个子区域进行编号
subplot在plotNum指定的区域中创建一个子图Axes
A = plt.subplot(2,2,1)
plt.plot([0,1],[0,1], color="red")
plt.subplot(2,2,2)
plt.title("B")
plt.plot([0,1],[0,1], color="green")
plt.subplot(2,1,2)
plt.title("C")
plt.plot(np.arange(10), np.random.rand(10), color="orange")#选择子图A
plt.sca(A)
plt.title("A")
plt.show()
为 KubeSphere 集群启用免费的泛域名 SSL 证书并实现证书自动更新和分发
rust 02 rustdesk基于rust的开源远程控制软件
信息完全技术之Enigma密码机【MATLAB程序及软件APP实现】
vs2015完全卸载+重装 成功解决 未能加载xx包、未能安装编译器等问题
@GetMapping、@PostMapping 和 @RequestMapping详细区别附实战代码(全)
SSL Certificate Signed Using Weak Hashing Algorithm(CVE-2004-2761)
手把手教你springboot整合bootstrap-table、pagehelper实现表格生成、页面美化、客户端和服务端分页