您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Python如何繪制二維曲線的日常應用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
使用Python繪制出類似Excel或者MATLAB的曲線還是比較容易就能夠實現的,需要用到的額外庫有兩個,numpy和matplotlib。使用這兩個模塊實現的曲線繪制其實在一定程度上更像是MATLAB的plot功能,不過今天看了一下matplotlib網站上的信息,現在的功能更為強勁了,而且已經支持三維圖像的繪制。
模塊庫的安裝非常簡單,我使用的Mac,在Mac上用pip進行了兩個模塊庫的安裝都十分順暢。相信其他平臺基本上也都這樣,如果能夠聯網,這種安裝方式是十分推薦的,確實是簡單。
我用Python讀取我自己日常運動的數據,數據以Numbers的方式進行統計,導出成Excel文件。為了能夠讀取Excel文件,我又安裝了xlrd模塊庫。
從matplotlib的網站上抄了一小段代碼簡單做了一下修改,加入了數據讀取以及簡單的計算,代碼如下:
#!/usr/bin/python import numpy as np import matplotlib.pyplot as plt from xlrd import open_workbook def SportLine(excel_file): days_year = [] target_km = [] records = [] sum_records = [] pct_records = [] target_pct = [] fig,axs = plt.subplots(3) for i in range(365): days_year.append(i) for day in days_year: target_km.append(float(day)/365.0 * 1000.0) # read record data book = open_workbook(excel_file) sheet = book.sheet_by_name('record') rows_num = sheet.nrows cols_num = sheet.ncols for row_num in range(3,368): try: records.append(float(sheet.cell(row_num,1).value)) except: records.append(0.0) # calculate sum of records sum_record = 0.0 for each_record in records: sum_record += each_record sum_records.append(sum_record) # calculate pct of all for each_sum in sum_records: pct_records.append(each_sum / 1000.0) # calculate target pct for day in range(1,366): target_pct.append(float(day)/365.0) # plot target and sum trend ax = axs[0] ax.plot(days_year,sum_records) ax.plot(days_year,target_km) ax.set_title('distance-year-km') ax.grid(True) # plot record ax = axs[1] ax.plot(days_year,records) ax.set_title('distance-day-km') ax.grid(True) # plot percentage ax = axs[2] ax.plot(days_year,pct_records) ax.plot(days_year,target_pct) ax.set_title('pct-100%') ax.grid(True) plt.show() SportLine('records.xlsx')
我的運動數據記錄電子表格格式如下:
程序運行,畫出的曲線如下:
python常用的庫:1.requesuts;2.scrapy;3.pillow;4.twisted;5.numpy;6.matplotlib;7.pygama;8.ipyhton等。
感謝各位的閱讀!關于“Python如何繪制二維曲線的日常應用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。