🌞欢迎来到机器学习的世界
🌈博客主页:卿云阁💌欢迎关注🎉点赞👍收藏⭐️留言📝
🌟本文由卿云阁原创!
🌠本阶段属于练气阶段,希望各位仙友顺利完成突破
📆首发时间:🌹2021年3月27日🌹
✉️希望可以和大家一起完成进阶之路!
🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!
目录
🍈 一、Matplotlib简单介绍
可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。
- 是专门用于开发2D图表(包括3D图表)
- 以渐进、交互式方式实现数据可视化
- 能将数据进行可视化,更直观的呈现
- 使数据更加客观、更具说服力
🍉二. 简单的Matplotlib画图
matplotlib.pyplot模块
import matplotlib.pyplot as plt
图形绘制流程:
1.创建画布 -- plt.figure()
plt.figure(figsize=(), dpi=) figsize:指定图的长宽 dpi:图像的清晰度 返回fig对象
2.绘制图像 -- plt.plot(x, y)
以折线图为例
3.显示图像 -- plt.show()
折线图绘制与显示
举例:展现上海一周的天气,比如从星期一到星期日的天气温度如下
import matplotlib.pyplot as plt # 1.创建画布 plt.figure(figsize=(10, 10), dpi=100) # 2.绘制折线图 plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13]) # 3.显示图像 plt.show()
认识Matplotlib图像结构(了解)
🍊三,图形添加辅助功能
为了更好地理解所有基础绘图功能,我们通过天气温度变化的绘图来融合所有的基础API使用
需求:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~18度
1.1 准备数据并画出初始折线图
import matplotlib.pyplot as plt import random # 画出温度变化图 # 0.准备x, y坐标的数据 x = range(60) y_shanghai = [random.uniform(15, 18) for i in x] #random.uniform(x, y) 方法将随机生成一个实数,它在 [x,y] 范围内。 # 1.创建画布 plt.figure(figsize=(20, 8), dpi=80) # 2.绘制折线图 plt.plot(x, y_shanghai) # 3.显示图像 plt.show()
1.2 添加自定义x,y刻度
plt.xticks(x, **kwargs)
x:要显示的刻度值
plt.yticks(y, **kwargs)
y:要显示的刻度值
# 增加以下两行代码 # 构造x轴刻度标签 x_ticks_label = ["11点{}分".format(i) for i in x] # 构造y轴刻度 y_ticks = range(40) # 修改x,y轴坐标的刻度显示 plt.xticks(x[::5], x_ticks_label[::5]) plt.yticks(y_ticks[::5])
1.3 中文显示问题解决
## 解决中文字符显示不全 # 设置中文编码和负号的正常显示 plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False
1.4 添加网格显示
为了更加清楚地观察图形对应的值
plt.grid(True, linestyle='--', alpha=0.5)
1.5 添加描述信息
添加x轴、y轴描述信息及标题
通过fontsize参数可以修改图像中字体的大小
plt.xlabel("时间") plt.ylabel("温度") plt.title("中午11点0分到12点之间的温度变化图示", fontsize=20)
1.6 图像保存
# 保存图片到指定路径 plt.savefig("d:\\test.png")
- 注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。
import matplotlib.pyplot as plt import random from pylab import mpl # 设置显示中文字体 mpl.rcParams["font.sans-serif"] = ["SimHei"] # 设置正常显示符号 mpl.rcParams["axes.unicode_minus"] = False # 0.准备数据 x = range(60) y_shanghai = [random.uniform(15, 18) for i in x] # 1.创建画布 plt.figure(figsize=(20, 8), dpi=100) # 2.绘制图像 plt.plot(x, y_shanghai) # 2.1 添加x,y轴刻度 # 构造x,y轴刻度标签 x_ticks_label = ["11点{}分".format(i) for i in x] y_ticks = range(40) # 刻度显示 plt.xticks(x[::5], x_ticks_label[::5]) plt.yticks(y_ticks[::5]) # 2.2 添加网格显示 plt.grid(True, linestyle="--", alpha=0.5) # 2.3 添加描述信息 plt.xlabel("时间") plt.ylabel("温度") plt.title("中午11点--12点某城市温度变化图", fontsize=20) # 2.4 图像保存 plt.savefig("d:\\test.png") # 3.图像显示 plt.show()
🍋四、 Matplotlib的使用
1.绘制折线图
import matplotlib.pyplot as plt plt.plot([1,2,5,6,8]) plt.ylabel('some number') plt.show()
2.绘制函数曲线
import numpy as np import matplotlib.pyplot as plt x1 = np.linspace(-5, 5, 101) y1 = np.sin(x1) plt.plot(x1, y1) plt.show()
x1 中保存的是为显示 sin 曲线而生成的从 -5 到 5 的 101 个数据。
y1 中保存的是使用 NumPy 的 sin 函数生成的数据。
2.绘制散点图
x2 = np.arange(100) y2 = x2 * np.random.rand(100) plt.scatter(x2, y2)
x2 中保存的是元素为“从 0 到 99 的整数”的数组。
y2 中保存的是元素为“在从 0 到 1 的范围内随机选出的 100 个数据”的数组与刚才的变量 x2
相乘的结果。
4.绘制直方图
x2 = np.arange(100) y2 = x2 * np.random.rand(100) plt.hist(y2, bins=5)
5.绘制柱状图
x2 = np.arange(100) y2 = x2 * np.random.rand(100) plt.bar(x2, y2)
6.绘制箱形图
🥦 五、Matplotlib的使用
下面对红酒数据集进行可视化
加载数据保存在data中
将要显示的索引为 0 的 alcohol (酒精度)和索引为 9 的 color_intensity (色泽)数据分别赋值 给 x3 和 y3 。画出散点图import matplotlib.pyplot as plt from sklearn.datasets import load_wine data = load_wine() x3 = data.data[:, [0]] y3 = data.data[:, [9]] plt.scatter(x3, y3)
下面输出y3的直方图
plt.hist(y3,bins=5)
🍆六、Matplotlib教程