Python可视化之matplotlib基础[通俗易懂]

Python可视化之matplotlib基础[通俗易懂]Matplotlib是一个Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形

一、绘制线形图

1.导包时采用

import matplotlib.pyplot as plt

当只添加一个数组时,会默认作为Y轴的值

plt.plot([2, 4, 7, 9])
plt.show()
# 绘制的其实是Y轴的值,X轴默认从0开始

Python可视化之matplotlib基础[通俗易懂]

 2.绘制基本的二维线形图

x = [1, 2, 3, 4]
y = [2, 5, 6, 8]
plt.plot(x, y)
plt.show()

Python可视化之matplotlib基础[通俗易懂]

 3.如果想要绘制两条线

x = [1, 2, 3, 4]
y = [2, 5, 6, 8]
y1 = [3, 4, 7, 8]
plt.plot(x, y)
plt.plot(x,y1)
plt.show()

Python可视化之matplotlib基础[通俗易懂]

 4.添加图例方法,使用plt.legend()方法

x = [1, 2, 3, 4]
y = [2, 5, 6, 8]
y1 = [3, 4, 7, 8]
plt.plot(x, y, label='A')
plt.plot(x, y1, label='B')
plt.legend()  # 添加图例方法使用
plt.show()

Python可视化之matplotlib基础[通俗易懂]

5.与numpy数组结合

data1 = np.random.randn(10).cumsum()  # 正态分布随机数
data2 = np.random.randn(10).cumsum()
print(data1)
print(data2)
plt.plot(data1, label='data1')
plt.plot(data2, label='data2')
plt.show()

 Python可视化之matplotlib基础[通俗易懂]

 6.当点足够多时,绘制出的图形就非常平滑

x = np.linspace(0, 7, 100)  # 从0到7共100个点
y = np.sin(x)
plt.plot(x, y)
plt.show()

Python可视化之matplotlib基础[通俗易懂]

二、设置线形、属性及标签

 1.设置图形的颜色,使用color属性,可以简写为c

data1 = np.random.randn(10).cumsum()  # 正态分布随机数
data2 = np.random.randn(10).cumsum()
print(data1)
print(data2)
plt.plot(data1, label='data1', color='r')
plt.plot(data2, label='data2', c='b')
plt.legend()
plt.show()

Python可视化之matplotlib基础[通俗易懂]

 2.设置线段的形状,采用linestyle属性,属性值可以为–或者-.,简写为ls

data1 = np.random.randn(10).cumsum()  # 正态分布随机数
data2 = np.random.randn(10).cumsum()
print(data1)
print(data2)
plt.plot(data1, label='data1', color='r', linestyle='--')
plt.plot(data2, label='data2', c='b', linestyle='-.')
plt.legend()
plt.show()

Python可视化之matplotlib基础[通俗易懂]

 3.设置线段的宽度,采用linewidth属性,属性值为数字,单位为像素,简写为lw,如果数据点想着重标记出,采用marker属性,o为圆形,^为三角。

data1 = np.random.randn(10).cumsum()  # 正态分布随机数
data2 = np.random.randn(10).cumsum()
print(data1)
print(data2)
plt.plot(data1, label='data1', color='r', linestyle='--', linewidth=1,marker='o')
plt.plot(data2, label='data2', c='b', linestyle='-.', lw=1,marker='^')
plt.legend()
plt.show()

Python可视化之matplotlib基础[通俗易懂]

4.设置X,Y轴的名称和图表的标题 

plt.xlabel('age')
plt.ylabel('height')
plt.title('STUDENT', y=1.03)

Python可视化之matplotlib基础[通俗易懂]

三、刻度与样式

1.设置X,Y轴的取值范围,使用plt.xlim()和plt.ylim(),使用plt.xticks()和plt.yticks()进行刻度标注

plt.xlim(0, 10)
plt.ylim(0, 5)
plt.xticks([0, 4, 8], ['born', 'baby', 'child'])
plt.yticks([0, 4, 8], ['born', 'baby', 'child'])

Python可视化之matplotlib基础[通俗易懂]

四、绘制条形图和直方图

1.绘制普通的条形图

x = [1, 3, 5, 7]
y = [2, 3, 6, 9]
plt.bar(x, y)
plt.show()

Python可视化之matplotlib基础[通俗易懂]

2.绘制横向柱状图

# 绘制横向柱状图
plt.barh(x,y)
plt.show()

 Python可视化之matplotlib基础[通俗易懂]

3.绘制堆积型柱状图

x = [1, 3, 5, 7]
y = [2, 3, 6, 9]
# 堆积型柱状图
y1 = [2, 4, 1, 6]
plt.bar(x, y)
plt.bar(x, y1, bottom=y)

 Python可视化之matplotlib基础[通俗易懂]

4.绘制对比型柱状图

x = [1, 3, 5, 7]
x1 = [2, 4, 6, 8]
y = [2, 3, 6, 9]
y1 = [2, 4, 1, 6]
plt.bar(x, y)
plt.bar(x1, y1)

Python可视化之matplotlib基础[通俗易懂]

5.绘制直方图

# 直方图
data = np.random.randn(1000)
plt.hist(data, bins=20)
plt.show()

 Python可视化之matplotlib基础[通俗易懂]

 6.在绘图之前可以先初始化画布设置画布大小

data = np.random.randn(1000)
plt.figure(figsize=(10, 10))  # 初始化画布并设置大小
plt.hist(data, bins=40)
plt.show()

Python可视化之matplotlib基础[通俗易懂]

五、绘制箱型图和散点图

1.箱型图,可以方便看出数据的分布和异常值,出现的圈圈为异常值,

data = np.random.rand(1000)  # 生成从0到1之间的随机数
plt.boxplot(data)  # 箱型图
plt.grid()
plt.show()

Python可视化之matplotlib基础[通俗易懂]

 2.散点图:可以使用color属性改变颜色,也可以使用maker属性改变形状,散点图有一个特殊的属性s=100,可以规定点的大小

x1 = [1, 2, 3, 4, 5]
y1 = [3, 2, 1, 4, 7]
x2 = [2, 4, 6, 8, 9]
y2 = [6, 1, 3, 4, 2]
plt.scatter(x1, y1)
plt.scatter(x2, y2)
plt.show()

Python可视化之matplotlib基础[通俗易懂]

 六、堆积图和饼图:

1.堆积图:

comp = [1, 2, 3, 4]
y1 = [24, 27, 35, 43]
y2 = [30, 35, 17, 12]
y3 = [27, 13, 15, 8]
y4 = [19, 25, 33, 37]
labels = ["apple", "micro", "yahoo", "google"]
plt.stackplot(comp, y1, y2, y3, y4, labels=labels)
plt.legend()
plt.show()

Python可视化之matplotlib基础[通俗易懂]

 2.饼图:

# 绘制饼状图:
labels = ["apple", "micro", "yahoo", "google"]
size = [15, 30, 45, 10]
explode = (0.2, 0, 0, 0)
plt.pie(size, labels=labels, autopct='%1.1f%%', explode=explode, startangle=90)
# startangle可以调整角度。
# 添加shadow可以有阴影效果
plt.show()

Python可视化之matplotlib基础[通俗易懂]

 七、绘制多图

# 绘制多图
x = [1, 2, 3, 4]
y1 = [4, 5, 8, 9]
y2 = [2, 5, 3, 8]
plt.subplot(2, 1, 1)  # 两行一列第一个
plt.plot(x, y1)
plt.subplot(2, 1, 2)  # 两行一列第二个
plt.plot(x, y2)
plt.show()

Python可视化之matplotlib基础[通俗易懂]

 八、面向对象绘图

面向对象的方法将前边的方法都用在创建的对象上即可:

# 面向对象画图
data = np.random.rand(1000)
fig, ax = plt.subplots()
ax.hist(data)
plt.show()
# 面向对象绘制多图
fig, ax = plt.subplots(2, 2, figsize=(10, 8))
ax[0][0].hist(data)
ax[0][1].boxplot(data)
plt.tight_layout()
plt.show()

Python可视化之matplotlib基础[通俗易懂]

 Python可视化之matplotlib基础[通俗易懂]

 九、显示中文和保存图像

1.中文显示

# 显示中文字体与保存图像
data = np.random.randn(1000)
plt.hist(data)
plt.title('某某公司')
plt.show()

Python可视化之matplotlib基础[通俗易懂]

 可以看到显示的标题为乱码

加入一行代码后符号竟然不能显示了

# 显示中文字体与保存图像
data = np.random.randn(1000)
plt.hist(data)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.title('某某公司')
plt.show()

Python可视化之matplotlib基础[通俗易懂]

 再加入一行

# 显示中文字体与保存图像
data = np.random.randn(1000)
plt.hist(data)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.title('某某公司')
plt.show()

Python可视化之matplotlib基础[通俗易懂]

 2.图像保存

plt.savefig('D:/lesson22.jpg')

保存图像要写在plt.show()之前,还可以调节画布大小和分辨率

plt.figure(figsize=(10, 8), dpi=300)  # 设置画布大小和分辨率

今天的文章Python可视化之matplotlib基础[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/87837.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注