Python 入门 matplotlib数据可视化基础【一】

掌握绘图基础语法与常用参数

掌握pyplot基础语法

import matplotlib.pyplot as plt
pyplot基本绘图流程:
在这里插入图片描述

创建画布与创建子图

plt.figure :创建一个空白画布,可指定画布的大小、像素
figure.add_sybplot 创建并选中子图,可以指定子图的行数、列数和选中图片的编号

添加画布内容

plt.title:在当前图形中添加标题。可以指定标题的名称、位置、颜色、字体大小等参数。
plt.xlabel:在当前图形中添加x轴名称,可以指定位置、颜色、字体大小等参数
plt.ylabel:在当前图形中添加y轴名称,可以指定位置、颜色、字体大小等参数
plt.xlim:指定当前图形x轴的范围,只能确定一个数值区间,无法使用字符串标识
plt.ylim:指定当前图形y轴的范围,只能确定一个数值区间,无法使用字符串标识
plt.xticks:指定x轴刻度的数目与取值
plt.yticks:指定y轴刻度的数目与取值
plt.legend:指定当前图形的图例,可以指定图里的大小、位置、标签
注:添加图例在绘制图形之后

保护与显示图形

plt.savefig 保存图片,可以指定图形的分辨率、边缘颜色
plt.show 在本机显示图片

例子:
最简单的绘图:不用创建子图

import numpy as np
import matplotlib.pyplot as plt
# &matplotlib inline 表示在行中显示图片,在命令行运行报错
data = np.arange(0,10,1)
plt.title('lines')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim((0,10))
plt.ylim((0,100))
plt.xticks([0,2,4,6,8,10])
plt.yticks([0,20,40,60,80,100])
plt.plot(data,data**2)
plt.plot(data,data*5)
plt.legend(['y= x**2','y = x*5'])
plt.savefig('E:/python/text.png')
plt.show()

在这里插入图片描述
多子图绘图

data = np.arange(0,np.pi*2,0.01) 
#第一幅子图
p1= plt.figure(figsize = (8,6),dpi = 80) #确定画布大小
ax1 = p1.add_subplot(2,1,1) #创建一个2行1列的子图,并开始绘制第一幅图
plt.title('lines')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim((0,1))
plt.ylim((0,1))
plt.xticks([0,0.2,0.4,0.6,0.8,1])
plt.yticks([0,0.2,0.4,0.6,0.8,1])
plt.plot(data,data**2)
plt.plot(data,data**4)
plt.legend(['y= x^2','y = x^4'])

#第二幅子图
ax2 = p1.add_subplot(2,1,2) #创建一个2行1列的子图,并开始绘制第一幅图
plt.title('sin/cos')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim((0,np.pi*2))
plt.ylim((-1,1))
plt.xticks([0,np.pi/2,np.pi,np.pi*1.5,np.pi*2])
plt.yticks([-1,-0.5,0,0.5,1])
plt.plot(data,np.sin(data))
plt.plot(data,np.cos(data))
plt.legend(['y= x^2','y = x^4'])
plt.savefig('E:/python/textsin.png')
plt.show

在这里插入图片描述

设置pyplot的动态参数

常用的rc参数:
lines.linewidth :线条宽度,取0-10之间,默认1.5

lines.linestyle:线条样式,可取‘-’ ‘–’ ‘-.’ ‘:’ .4种,默认为‘-’

lines.marker:线条的形状:可取:o,D,h,.,S等等(大概20多种)默认为none
lines.markersize:点的大小,取0~10之间的数值,默认为1

附lines.marker参数取值及意义:
在这里插入图片描述

原创文章 11 获赞 17 访问量 1248

猜你喜欢

转载自blog.csdn.net/nnnnn68/article/details/105757308