【python 散點圖】美觀畫時間序列散點圖
阿新 • • 發佈:2019-01-27
經常遇到時間序列的資料,用散點圖可以直觀的檢視資料的分佈情況。matplotlib模組的pyplot有畫散點圖的函式,但是該函式要求x軸是數字型別。pandas的plot函式裡,散點圖型別’scatter’也要求數字型的,用時間型別的會報錯。
最終摸索出畫散點圖的簡單辦法。可以使用pyplot的plot_date()畫散點圖。
# -*- coding: utf-8 -*-
"""
speed1219.csv data file format:
dtime,speed
2017-12-19 10:33:30,803
2017-12-19 10:35:29,1008
2017-12-19 10:36:04,1016
2017-12-19 10:37:32,984
2017-12-19 10:38:06,1008
"""
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import AutoDateLocator, DateFormatter
df = pd.read_csv('d:/speed1219.csv', parse_dates=['dtime'])
plt.plot_date(df.dtime, df.speed, fmt='b.')
ax = plt.gca()
ax.xaxis.set_major_formatter(DateFormatter('%Y-%m-%d %H:%M' )) #設定時間顯示格式
ax.xaxis.set_major_locator(AutoDateLocator(maxticks=24)) #設定時間間隔
plt.xticks(rotation=90, ha='center')
label = ['speedpoint']
plt.legend(label, loc='upper right')
plt.grid()
ax.set_title(u'傳輸速度', fontproperties='SimHei',fontsize=14 )
ax.set_xlabel('dtime')
ax.set_ylabel('Speed(KB/s)')
plt.show()