1. 程式人生 > >【python 散點圖】美觀畫時間序列散點圖

【python 散點圖】美觀畫時間序列散點圖

經常遇到時間序列的資料,用散點圖可以直觀的檢視資料的分佈情況。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()