python,numpy,pandas,matplotlib包应用,画时间序列图

应用pandas可读取excel文件中的数据,存储为数据框,并应用matplotlib包中的方法进行数据可视化。

本例中读取的stock.xlsx文件中的数据为

 一、画饼图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdate
# 时间序列绘图示例
stock = pd.read_excel('stock.xlsx', index_col = 0)# 读取Excel文件,存为数据框stock,并指导第0列为数据框的索引列
print(stock.head)
plt.rcParams['font.sans-serif'] = 'Simhei' #设置中文
plt.figure(figsize=(6,6))  #设置长宽,建立窗口
plt.title('2018年5月成效量饼图') #设置图标题
plt.pie(stock.volume[0:5], labels = stock.index[0:5, autopct = '%1.1f%%')
plt.grid(True)
plt.show()

绘制的图形如下:

画折线图代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdate
from datetime import datetime
# 时间序列绘图示例
stock = pd.read_excel('stock.xlsx')# 读取Excel文件,存为数据框stock,并指导第0列为数据框的索引列
print(stock.head)
plt.rcParams['font.sans-serif'] = 'Simhei' #设置中文
fig1 = plt.figure(figsize=(8,8)) #设置长宽,建立窗口

xs = stock['date'].astype(str)
xs = [datetime.strptime(d, '%Y-%m-%d').date() for d in xs]
ax1 = fig1.add_subplot(1, 1, 1)
ax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m-%d')) # 设置时间标签显示格式
plt.xticks(pd.date_range(xs[1],xs[-1]))
plt.plot(xs,stock.open, color = 'k', label = '开盘')
plt.plot(xs,stock.close, color = 'b', label = '收盘')
plt.plot(xs,stock.high, color = 'r', label = '最高价')
plt.legend(loc = 0)

plt.grid(True)
plt.show()
运行后生成下图:

画直方图代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdate
from datetime import datetime
# 时间序列绘图示例
stock = pd.read_excel('stock.xlsx')# 读取Excel文件,存为数据框stock,并指导第0列为数据框的索引列
print(stock.head)
plt.rcParams['font.sans-serif'] = 'Simhei' #设置中文
fig1 = plt.figure(figsize=(8,8)) #设置长宽,建立窗口

xs = stock['date'].astype(str)
xs = [datetime.strptime(d, '%Y-%m-%d').date() for d in xs]
ax1 = fig1.add_subplot(1, 1, 1)
ax1.xaxis.set_major_formatter(mdate.DateFormatter('%m-%d')) # 设置时间标签显示格式
plt.xticks(pd.date_range(xs[0],xs[-1]))
plt.bar(xs,stock.volume, color = 'g', width = 0.5)
plt.title('成交量直方图')
plt.xlabel('日期')
plt.ylabel('成交量')
运行后显示

 




猜你喜欢

转载自www.cnblogs.com/iceberg710815/p/12371208.html