欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python数据可视化库-Matplotlib(二)

程序员文章站 2022-03-26 12:26:58
我们接着上次的继续讲解,先讲一个概念,叫子图的概念。 我们先看一下这段代码 我们看到plt.figure()这个方法,我们设置一个整体的图。然后我们在往这个图中增加我们需要的子图 fig.add_subplot(3,2,1)意思是在figure中,添加一个3行2列的子图,其中,最后一个参数是子图的位 ......

我们接着上次的继续讲解,先讲一个概念,叫子图的概念。

我们先看一下这段代码

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()

Python数据可视化库-Matplotlib(二)

我们看到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()

可以得到如下的一个子图

Python数据可视化库-Matplotlib(二)

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()

Python数据可视化库-Matplotlib(二)

我们可以看到,我们设置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()

 可以看到我们可以设置折线图的不同的颜色。

Python数据可视化库-Matplotlib(二)

下面我们看看这个例子

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()

Python数据可视化库-Matplotlib(二)

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

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()

 

Python数据可视化库-Matplotlib(二)

我们通过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轴表示,图例位置调整为左边。添加了折线图的标题。 

Python数据可视化库-Matplotlib(二)

今天讲解就先到这里,我们可以看到,通过matplotlib库,可以很轻松的画出我们想要的图。

感谢各位的阅读,谢谢~~