Pandas子图操作

(1)子图画法

import pandas as pd

import matplotlib.pyplot as plt

unrate = pd.read_csv(r"E:\PyCharm\UNRATE.csv")

fig = plt.figure()                                     #调用plt.figure()方法

ax1 = fig.add_subplot(2,2,1)                #在2乘2的表格中该图站第一个位置

ax2 = fig.add_subplot(2,2,2)                  #在2乘2的表格中该图站第二个位置

ax2 = fig.add_subplot(2,2,4)                  # 在2乘2的表格中该图站第四个位置

plt.show()

如下图:

(2)一张图上多个子图

fig = plt.figure(figsize(3,3))                         #子图为3乘3大小

ax1 = fig.add_subplot(2,2,1)

ax2 = fig.add_subplot(2,2,4)

     

ax1.plot(np.random.randint(1,5,5), np.arange(5))          #x值为大小随机的5个数,y值为从0开始的5个数
ax2.plot(np.arange(10)*2, np.random.randint(0,10,10))

plot.show()

如下图:

(3)一张图上画出多折线

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

unrate = pd.read_csv(r"E:\PyCharm\UNRATE.csv")

unrate["DATE"]   =  pd.to_datetime(unrate["DATE"])                    #把日期改为特定格式

unrate["MONTH"]   =  unrate["DATE"].dt.month                         #取出月份,生成MONTH列数据

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

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

plt.plot(unrate[12:24]["MONTH"], unrate[12:24]["VALUE"], c='green')

plt.show()

结果为:

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

colors = ['red', 'yellow', 'blue', 'green', '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)     #label是下图左上角方框中的东西 ,颜色对应年份

plt.legend(loc='upper left')                                                                                   #把图例在左上角显示出来

plt.xlabe1("MONTH")

plt.ylabel("Unemployment Rate")

plt.title("Monthly Unemployment Trends, 1948-1952")

plt.show()

结果为:

        

猜你喜欢

转载自blog.csdn.net/qq_39112101/article/details/85040691