2024年最全手把手学爬虫第六弹——数据可视化

本文详细介绍了如何使用Matplotlib库在Python中创建各种图表,如子图、直方图、柱状图、散点图和折线图,以及如何添加标签、图例和保存图表。同时强调了系统化学习和资源分享的重要性。
摘要由CSDN通过智能技术生成

fig , axes = plt.subplots(nrows, ncols)

nrows 与 ncols 表示两个整数参数,它们指定子图所占的行数、列数

data = np.arange(100, 200) # 数据

fig, axes = plt.subplots(2, 2) # 分成2x2矩阵区域,返回子图数组axes

print(axes)

ans:

[[AxesSubplot: AxesSubplot:]

[AxesSubplot: AxesSubplot:]]

Process finished with exit code 0

data = np.arange(100, 200) # 数据

fig, axes = plt.subplots(2, 2) # 分成2x2矩阵区域,返回子图数组axes

ax1 = axes[0, 0] # 取出第一个子视图

ax2 = axes[0, 1]

ax3 = axes[1, 0]

ax4 = axes[1, 1]

ax1.plot(data)

ax2.plot(-data)

ax3.plot(2*data)

ax4.plot(-2*data)

plt.show()

请添加图片描述

添加各类标签

绘图的时候我们为了使绘制的图形更加直观,我们通常会给图像添加横、纵坐标等标签,常用的标签列举如下:

请添加图片描述

data = np.arange(0, 1.1, 0.01)

plt.title(“Title”) # 设置标题

plt.xlabel(“x”) # 添加x轴的名称

plt.ylabel(“y”) # 添加y轴的名称

设置x和y轴的刻度

plt.xticks([0, 0.5, 1])

plt.yticks([0, 0.5, 1.0])

绘制y=x^2曲线

plt.plot(data, data ** 2)

绘制y=x^3曲线

plt.plot(data, data ** 3)

添加图例

plt.legend([“y=x^2”, “y=x3”])

在本机上显示图形

plt.show()

请添加图片描述

**Tip:**中文无法正常显示时添加如下代码即可~

import matplotlib.pyplot as plt

plt.rcParams[“font.sans-serif”]=[“SimHei”] #设置字体

plt.rcParams[“axes.unicode_minus”]=False #该语句解决图像中的“-”负号的乱码问题

绘制常见图表


请添加图片描述

绘制直方图

plt.hist(x, bins, range, color) # 常用的参数,其他忽略

x:输入值,可以是单个数组,或者数组序列

bins:绘制条柱的个数,整数值,返回整数值+1个,默认为10

range: bins的上下范围

color:表示条柱的颜色

data = [34, 23, 45, 35, 66, 78, 16, 99]

plt.hist(data, bins=8, color=‘yellow’)

plt.show()

请添加图片描述

绘制柱形图

plt.bar(x, height, width, color, edgecolor, align)

x:表示x轴数据

height:表示条形高度

width:表示条形宽度,默认0.8

color:表示条形颜色

edgecolor:表示条形边框颜色

创建图形对象

fig = plt.figure()

添加子图区域,参数值表示[left, bottom, width, height ]

ax = plt.subplot(1, 1, 1)

准备数据1

langs1 = [‘C’, ‘C++’, ‘Java’, ‘Python’, ‘PHP’]

students1 = [23, 17, 35, 29, 12]

准备数据2

langs2 = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’]

students2 = [53, 27, 30, 22, 12]

绘制柱状图

ax.bar(langs1, students1, width=0.3, color=‘red’)

ax.bar(langs2, students2, width=0.3, color=‘green’)

plt.show()

请添加图片描述

绘制散点图

散点图用于在水平轴和垂直轴上绘制数据点,它表示了因变量随自变量变化的趋势。通俗地讲,它反映的是一个变量受另一个变量的影响程度。

plt.scatter(x, y,s, c, marker, alpha)

x、y:表示xy轴对应的数据

s:指定点的大小

c:指定散点的颜色

marker‘:表示绘制的散点类型

alpha:表示点的透明度,0~1

x = [100, 200, 300, 400, 500, 600, 700, 800]

y = [101, 401, 501, 601, 201, 301, 701, 801]

plt.scatter(x, y)

plt.show()

请添加图片描述

绘制折线图

直接展示绘制多条折线

plt.rcParams[“font.sans-serif”] = [“SimHei”] # 设置字体

plt.rcParams[“axes.unicode_minus”] = False # 该语句解决图像中的“-”负号的乱码问题

对比两人6次考试成绩变化

x = [1, 2, 3, 4, 5, 6]

y1 = [88, 81, 79, 81, 86, 94]

y2 = [99, 88, 74, 90, 81, 75]

绘制折线图,添加数据点,设置点的大小

matplotlib会自动为线条添加不同的颜色

plt.plot(x, y1, ‘r’, marker=‘.’, markersize=10)

plt.plot(x, y2, ‘b’, marker=‘.’, markersize=10)

plt.title(‘成绩对比折线图’) # 折线图标题

plt.xlabel(‘次数’) # x轴标题

plt.ylabel(‘分数’) # y轴标题

给图像添加注释,并设置样式

for a, b in zip(x, y1):

plt.text(a, b, b, ha=‘center’, va=‘bottom’, fontsize=10)

for a, b in zip(x, y2):

plt.text(a, b, b, ha=‘center’, va=‘bottom’, fontsize=10)

绘制图例

plt.legend([‘小张’, ‘小柯’])

显示图像

plt.show()

请添加图片描述

绘制饼状图

y = np.array([35, 25, 25, 15])

plt.pie(y,

labels=[‘A’, ‘B’, ‘C’, ‘D’], # 设置饼图标签

colors=[“#d5695d”, “#5d8ca8”, “#65a479”, “#a564c9”], # 设置饼图颜色

explode=(0, 0.2, 0, 0), # 第二部分突出显示,值越大,距离中心越远

autopct=‘%.2f%%’, # 格式化输出百分比

)

plt.title(“测试饼状图”)

plt.show()

请添加图片描述

保存图表


plt.savefig()必须写在plt.show()前面,否则保存为空白图像

savefig(fname,dpi=None,facecolor=“w”,edgecolor=“w”,orientation=“portrait”,papertype=None,format=None,transparent=False,bbox_inches=None,pad_inches=0.1,frameon=None,metadata=None)

plt.rcParams[“font.sans-serif”] = [“SimHei”] # 设置字体

plt.rcParams[“axes.unicode_minus”] = False # 该语句解决图像中的“-”负号的乱码问题

对比两人6次考试成绩变化

x = [1, 2, 3, 4, 5, 6]

y1 = [88, 81, 79, 81, 86, 94]

y2 = [99, 88, 74, 90, 81, 75]

绘制折线图,添加数据点,设置点的大小

matplotlib会自动为线条添加不同的颜色

plt.plot(x, y1, ‘r’, marker=‘.’, markersize=10)

plt.plot(x, y2, ‘b’, marker=‘.’, markersize=10)

plt.title(‘成绩对比折线图’) # 折线图标题

plt.xlabel(‘次数’) # x轴标题

plt.ylabel(‘分数’) # y轴标题

给图像添加注释,并设置样式

for a, b in zip(x, y1):

plt.text(a, b, b, ha=‘center’, va=‘bottom’, fontsize=10)

for a, b in zip(x, y2):

plt.text(a, b, b, ha=‘center’, va=‘bottom’, fontsize=10)

绘制图例

plt.legend([‘小张’, ‘小柯’])

plt.savefig(r"…/Include/jk.png")

现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。

分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值