Python数据可视化库Matplotlib

前言

python的数据可视化库,Matplotlib,是一个Python的2D绘图库。通过这个库,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率图,条形图,错误图,散点图等等

一点一点画一张图

首先我们有一组数据如下:
在这里插入图片描述
我们可以看到,这组数据有日期,还有日期对应的值,因为这组数据中的日期格式不是标准的日期格式

那么我们对数据做一下转换,取1948年的整年的数据,来进行一个绘图操作

import pandas as pd
unrate = pd.read_csv('unrate.csv')
unrate['DATE'] = pd.to_datetime(unrate['DATE'])
print(unrate.head(12))

在这里插入图片描述我们需要对这组数据,进行折线图的绘制,可以清楚的看到这整年的数据的高低情况。
这组数据表示的是美国在1948年每个月的失业率的百分比情况。
下面我们来进行画图操作

import matplotlib.pyplot as plt
plt.plot()
plt.show()

运行上述代码,可以得到一个空白的坐标图
在这里插入图片描述
下面我们会在这个空白图上增加一些内容。

first_tweleve = unrate[0:12]
plt.plot(first_tweleve['DATE'],first_tweleve['VALUE'])
plt.show()

可以看到这段代码,我们取出数据中的前12条数据,在将这12条数据,分别画入,X轴,Y轴到图中,显示出来
在这里插入图片描述
得到如上图所示的折线图。我们做一下简单的处理,将x轴的图例坐标值,倾斜 45度放置

plt.xticks(rotation=45),只需要在画图的下面,增加x轴坐标的度数。既可以变换,显示内容如下
在这里插入图片描述那么我们在来美化一下这个图,增加一些更多的内容在里面。

plt.plot(first_tweleve['DATE'],first_tweleve['VALUE'])
plt.xticks(rotation=90)
plt.xlabel('Month')
plt.ylabel('Unemployment Rate')
plt.title('Monthly Unemployment Trends 1948')
plt.show()

下面我们在看看这个图变成一个什么样子
在这里插入图片描述可以看到,我们增加标题,增加了X轴,Y轴的表示方式和基本说明。

那么这样我们就基本上完成了一个很简单的一个折线图。

多张图或一张图可以对比多条信息

我们先看一下这段代码

import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(3,2,1)
ax2 = fig.add_subplot(3,2,2)
ax3 = fig.add_subplot(3,2,3)
ax4 = fig.add_subplot(3,2,6)
plt.show()

在这里插入图片描述我们看到plt.figure()这个方法,我们设置一个整体的图。然后我们在往这个图中增加我们需要的子图

fig.add_subplot(3,2,1)意思是在figure中,添加一个3行2列的子图,其中,最后一个参数是子图的位置

我们在做一下变换,对比一下可以很清楚的看到,我们看看下面的代码

import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(4,4,1)
ax2 = fig.add_subplot(4,4,2)
ax3 = fig.add_subplot(4,4,3)
ax4 = fig.add_subplot(4,4,4)
ax5 = fig.add_subplot(4,4,6)
ax6 = fig.add_subplot(4,4,7)
ax6 = fig.add_subplot(4,4,16)
plt.show()

可以得到如下的一个子图
在这里插入图片描述

import numpy as np
fig = plt.figure(figsize=(6,6))
ax1 = fig.add_subplot(2,1,1)
ax2 = fig.add_subplot(2,1,2)
ax1.plot(np.random.randint(1,5,5),np.arange(5))
ax2.plot(np.arange(10)*3,np.arange(10))
plt.show()

在这里插入图片描述我们可以看到,我们设置figsize=(6,6)我们可以图的大小。设置两个图

我们在画图的时候,可以直接通过ax1.plot,ax2.plot进行随机数据配置

unrate['MONTH'] = unrate['DATE'].dt.month
unrate['MONTH'] = unrate['DATE'].dt.month
fig = plt.figure(figsize=(6,3))

plt.plot(unrate[0:12]['MONTH'],unrate[0:12]['VALUE'],c ='red')
plt.plot(unrate[12:24]['MONTH'],unrate[12:24]['VALUE'],c ='blue')
plt.show()

可以看到我们可以设置折线图的不同的颜色。
在这里插入图片描述下面我们看看这个例子

fig = plt.figure(figsize=(10,6))
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()

在这里插入图片描述我们把数据通过不同的颜色的线条画出来了,但是不知道每条线代表的是什么意思。下面我们给折线图加上一个图例:

fig = plt.figure(figsize=(10,6))
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]
    label = str(1948 + i)
    plt.plot(subset['MONTH'], subset['VALUE'], c=colors[i], label=label)
plt.legend(loc='best')
plt.show()

在这里插入图片描述我们通过label=label 设置好一个label为图例,然后进行设置,默认为plt.legend(loc=‘best’)图例显示在右边

我们做下点单的修改,让整个折线图完整标准的显示

fig = plt.figure(figsize=(10,6))
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]
    label = str(1948 + i)
    plt.plot(subset['MONTH'], subset['VALUE'], c=colors[i], label=label)
plt.legend(loc='upper left')
plt.xlabel('Month, Integer')
plt.ylabel('Unemployment Rate, Percent')
plt.title('Monthly Unemployment Trends, 1948-1952')
plt.show()

我们增加了整个折线图的XY轴表示,图例位置调整为左边。添加了折线图的标题。
在这里插入图片描述

  • 48
    点赞
  • 136
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nine_mink

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值