用python繪制趨勢圖


import matplotlib.pyplot as plt #plt用於顯示圖片
import matplotlib.image as mping #mping用於讀取圖片
import datetime as dt
import matplotlib.dates as mdates
from pylab import *


def draw_trend_chart(dates,y):
    mpl.rcParams['font.sans-serif'] = ['SimHei'] #指定默認字體
    mpl.rcParams['axes.unicode_minus'] = False #解決保存圖像是負號'-'顯示為方塊的問題
    
    x = [dt.datetime.strptime(d,'%Y/%m/%d').date() for d in dates]
    #plt.figure(figsize=(8,8))
    plt.figure()

    #plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y'))
    #plt.gca().xaxis.set_major_locator(mdates.DayLocator())
    #plt.plot(x,y,"r--",linewidth=2)
    plt.plot(x,y,"r",linewidth=1)
    #plt.gcf().autofmt_xdate()
    
    #plt.xlabel("DATE") #x軸標簽
    plt.ylabel("WEIGHT") #y軸標簽
    plt.title("MY HEALTH TRACKING")#標題

    plt.savefig("liuyang.png") #保存圖片名稱

    lena = mping.imread('liuyang.png')  #讀取圖片文件信息
    lena.shape #(512,512,3)

    plt.imshow(lena) #顯示圖片
    plt.axis('off') #不顯示坐標軸
    plt.title("")
    plt.show() #顯示

def get_weight_data(filename):
    time = []
    weight = []
    fileContent=open(filename,"r")
    for eachline in fileContent:
        eachData = eachline.strip('\n').split(",")
        if eachData[-1].strip() =='':
            continue
        else:
            time.append(eachData[0])
            weight.append(eachData[1])
    return [time, weight]

data = get_weight_data("data.csv")
draw_trend_chart(data[0],data[1])
復制代碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM