Python数据可视化-Matplotlib学习笔记(2)--画图进阶

本文介绍了使用Matplotlib绘制多种图表的方法,包括在同一区域绘制多个子图、在一个图表中绘制多条线并添加提示标签等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 一个区域画多个图

还是以画折线图为例,在笔记(1)中,画了一张图,但有的时候我们需要在一个大区域画好几张小图。具体实现看下面代码:

import matplotlib.pyplot as plt
fig = plt.figure() # 定义区域
ax1 = fig.add_subplot(3,2,1) # 添加子图,参数3,2,1代表区域划分为3行2列共6个区域,顺序为1开始从左到右,从上到下。1为在1区域添加子图。即前两个参数代表布局,第三个参数代表位置。
ax2 = fig.add_subplot(3,2,3) # 3为在3区域添加子图
ax3 = fig.add_subplot(3,2,6) # 6为在6区域添加子图
plt.show() # 这里不给图填充数据,我们画一下看效果
# ax = fig.add_subplot(1,1,1) # 参数111为填充整个区域

这里写图片描述


下面来实际画一下,还是用笔记(1)中的数据:

import pandas as pd
import matplotlib.pyplot as plt

unrate = pd.read_csv('unrate.csv') # 读csv文件
unrate['DATE'] = pd.to_datetime(unrate['DATE'])
unrate['MONTH'] = unrate['DATE'].dt.month # 也可以将'DATE'转换为数字月份

first_twelve = unrate[0:12] # 取前12行数据

# fig = plt.figure()
fig = plt.figure(figsize=(10, 12)) # figsize=(10, 12)参数为手动设定区域(长,宽)的大小

ax1 = fig.add_subplot(2, 1, 1)
plt.xticks(rotation=20) # 旋转20度
plt.xlabel('Month')
plt.ylabel('Unemployment Rate')
plt.title('Monthly Unemployment Trends, 1948')

ax2 = fig.add_subplot(2, 1, 2)
plt.xticks(rotation=0) # 不旋转,或者直接不要这条语句
plt.xlabel('Month')
plt.ylabel('Unemployment Rate')
plt.title('Monthly Unemployment Trends, 1948')

ax1.plot(first_twelve['DATE'], first_twelve['VALUE'])
ax2.plot(first_twelve['MONTH'], first_twelve['VALUE'])

plt.show()

这里写图片描述

2. 一个图中画两条线

import pandas as pd
import matplotlib.pyplot as plt

unrate = pd.read_csv('unrate.csv') # 读csv文件
unrate['DATE'] = pd.to_datetime(unrate['DATE'])
unrate['MONTH'] = unrate['DATE'].dt.month

fig = plt.figure(figsize=(7, 5))

plt.xlabel('Month')
plt.ylabel('Unemployment Rate')
plt.title('Monthly Unemployment Trends, 1948 & 1949')

plt.plot(unrate[0:12]['MONTH'], unrate[0:12]['VALUE'], c='red') # c='red'定义画线为红色
plt.plot(unrate[12:24]['MONTH'], unrate[12:24]['VALUE'], c='blue') # c='blue'定义画线为蓝色
# 如果有多条线需要画,可以多写这么几条函数,也可以像下面代码中,用一个循环解决

plt.show()

即红色为1948年,蓝色为1949年数据。
这里写图片描述

3. 一个图中画多条线

import pandas as pd
import matplotlib.pyplot as plt

unrate = pd.read_csv('unrate.csv') # 读csv文件
unrate['DATE'] = pd.to_datetime(unrate['DATE'])
unrate['MONTH'] = unrate['DATE'].dt.month

fig = plt.figure(figsize=(10, 6))

plt.xlabel('Month')
plt.ylabel('Unemployment Rate')
plt.title('Monthly Unemployment Trends')

colors = ['red', 'blue', 'green', 'orange', 'black']
for i in range(5):
    start_index = i * 12
    end_index = (i + 1) * 12
    subset = unrate[start_index:end_index]
    plt.plot(subset['MONTH'], subset['VALUE'], c=colors[i])

plt.show()

按colors清单里定义的5种颜色,依次画线,分别为1948、1949、1950、1951、1952
这里写图片描述

4. 在图中添加提示标签
这里写图片描述
实现起来也很简单,之前基础上修改3处代码就可以了,实现看下面代码:
在for部分

for i in range(5):
    start_index = i * 12
    end_index = (i + 1) * 12
    subset = unrate[start_index:end_index]
    label = str(1948 + i) # 修改部分1,增加这句
    plt.plot(subset['MONTH'], subset['VALUE'], c=colors[i], label=label) # 修改部分2,把label=label加进去
plt.legend(loc='best') # 修改部分3,用这句把提示标签画出来,loc参数决定标签在图中放的位置
# print(help(plt.legend)) # 查看plt.legend函数都有什么参数可选
plt.show()

这里写图片描述

好的,以下是一篇关于学习Python数据可视化与Jupyter Notebook数据处理和画图的日志: 今天我学习了Python数据可视化和Jupyter Notebook数据处理和画图的方法。Python数据可视化可以帮助我们更好地理解数据,Jupyter Notebook则可以帮助我们更方便地进行数据处理和画图。 首先,我学习了Python中的Matplotlib库和Seaborn库。Matplotlib一个功能强大的数据可视化库,它可以绘制各种类型的表,如折线、散点、直方等等。Seaborn库则是在Matplotlib基础上进行了封装,提供了更加美观、易用的表风格,同时还支持更高级的统计绘功能。我通过学习这两个库的使用方法,学会了如何在Python中进行数据可视化。 接下来,我学习了Jupyter Notebook的使用方法。Jupyter Notebook是一个交互式的笔记本,它可以让我们在同一个界面中进行数据处理、代码编写和表绘制。通过Jupyter Notebook,我们可以很方便地将数据处理和表绘制整合在一起,形成一份完整的数据分析报告。我学习了如何在Jupyter Notebook中创建和运行代码单元格、如何导入数据、如何进行数据清洗和处理,并且学会了如何使用Matplotlib和Seaborn在Jupyter Notebook中进行表绘制。 最后,我通过一个实例来练习了Python数据可视化和Jupyter Notebook数据处理和画图的方法。我使用了一个公开的数据集,其中包含了一些关于鸢尾花的信息,如花瓣长度、花瓣宽度、花萼长度、花萼宽度等等。我在Jupyter Notebook中导入了这个数据集,并且使用Matplotlib和Seaborn绘制了多种表,如散点、箱线、直方等等。通过这个实例的练习,我加深了对Python数据可视化和Jupyter Notebook数据处理和画图的理解,也掌握了更多实用的技巧和方法。 总的来说,学习Python数据可视化和Jupyter Notebook数据处理和画图是非常有用的,它可以帮助我们更好地理解数据、更方便地进行数据分析和报告。我会继续努力学习,提升自己的数据分析能力。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值