Python数据分析第十课:绘制双Y轴和改变坐标轴默认显示方式

这篇博客介绍了如何在Python中使用Matplotlib库绘制双Y轴坐标系,以在同一图表中比较不同类型的数值数据。此外,还讲解了如何去除图形边框以及调整坐标轴的位置,提供了具体的代码示例,包括设置坐标轴颜色为无色以及移动坐标轴到指定位置。最后,提出了绘制正弦函数和展示电商销售数据的练习题。
摘要由CSDN通过智能技术生成

前面我们学习了Matplotlib的绘图流程和常用设置以及常见统计图的绘制方法。

同时,我们也发现Matplotlib绘制出的图形中会存在一些问题,例如:如何绘制双Y轴坐标系?如何去掉图形默认的边框?以及如何移动坐标到指定位置?

一、绘制双Y轴坐标系

在进行数据分析时,有时候我们需要在同一个坐标图中比较两种数据在时间序列上的关系。

由于两种数据的单位和数据并不统一,也是不同的类型的数据,因此我们不能用一个Y轴来共同衡量两类不同的数据,这时候我们就需要绘制双Y轴图。

%matplotlib inline
import matplotlib.pyplot as plt
import pandas as pd

# 设置全局字体
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
datas = pd.read_excel(r'C:\Users\lin-a\Desktop\data\600001SH.xlsx')
# 将日期转换为时间戳,并设置为行索引
datas.index=pd.to_datetime(datas['日期'])
# 获取二月份的数据
feb_datas = datas['2015-02']

# 绘制图形
fig = plt.figure(figsize=(20,8),dpi=80)
ax = fig.add_subplot(111)
x = feb_datas.index.tolist()
# 将时间转换为字符串
x2 = [time.strftime('%Y-%m-%d') for time in x]
lin1 = ax.plot(x2,feb_datas['收盘价(元)'].values.tolist(),label='收盘价',color='red')
ax.legend(loc='upper left')
ax.set_ylabel("收盘价(元)")
ax.set_xlabel("日期")
plt.show()

在这里插入图片描述

以上的代码中:有add_subplot(),这个与plot()有什么异同呢?

  • plot是绘图,subplot是子图,整体不偏离这个框架。

  • fig.add_subplot(111)
    此处,fig= plt.figure()是一个对象。

    其中参数111,指的是将图像分成1行1列,此子图占据从左到右从上到下的1位置。

  • plt.subplot(234)
    将画布分成2行3列,取从左到右,从上到下第4个位置。

两者本质是一样的,不同在于add_subplot是面向对象,subplot是面向函数

我们的目的是研究二月份某公司的每日收盘价以及对应的成交量,所以为方便分析,需要在一个双Y轴坐标图中同时绘制出收盘价和成交量的时间序列图。

双y轴绘制的关键函数是twinx(),twinx()函数表示共享X轴,共享表示的是X轴使用同一刻度线。

每日收盘价的折线图,我们已经绘制出来了,现在要使用twinx()绘制另外一条成交量折线图:

%matplotlib inline
from matplotlib import pyplot as plt
import pandas as pd

# 设置全局字体
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

# 导入数据
data = pd.read_excel(r'C:\Users\lin-a\Desktop\data\600001SH.xlsx')
# 查看数据的基本特征
print(data.shape)

# 将日期设置为数据的索引,便于使用日期选择数据
data.index = data['日期']
# 获取2月的数据
feb_data = data['2015-02']

# 获取x,y轴的数据
y = feb_data['收盘价(元)'].values.tolist()
y2 = feb_data['成交量(股)'].values.tolist()
x = feb_data.index.strftime('%Y-%m-%d').tolist()

# 设置画布大小
fig = plt.figure(figsize=(20,8),dpi=80)
# 设置ax对象
ax = fig.add_subplot(111)
ax2 = ax.twinx()
# 设置标题
plt.
  • 1
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值