Python繪製二維曲線的日常應用

2021-07-26 03:29:52 字數 2785 閱讀 9229

使用python繪製出類似excel或者matlab的曲線還是比較容易就能夠實現的,需要用到的額外庫有兩個,numpy和matplotlib。使用這兩個模組實現的曲線繪製其實在一定程度上更像是matlab的plot功能,不過今天看了一下matplotlib**上的資訊,現在的功能更為強勁了,而且已經支援三維影象的繪製。

模組庫的安裝非常簡單,我使用的mac,在mac上用pip進行了兩個模組庫的安裝都十分順暢。相信其他平台基本上也都這樣,如果能夠聯網,這種安裝方式是十分推薦的,確實是簡單。

我用python讀取我自己日常運動的資料,資料以numbers的方式進行統計,匯出成excel檔案。為了能夠讀取excel檔案,我又安裝了xlrd模組庫。

從matplotlib的**上抄了一小段**簡單做了一下修改,加入了資料讀取以及簡單的計算,**如下: 1

#!/usr/bin/python 2 

3 import

numpy

asnp 4

import

matplotlib.pyplot

asplt 5

from

xlrd

import

open_workbook 6 

7 def

sportline

(excel_file): 8

days_year    = 9

target_km    =

10 records      =

11 sum_records  =

12 pct_records  =

13 target_pct   =

14 15

fig,axs = plt.subplots(3)

16 17

fori

inrange

(365):

18

19 

20 for

day

indays_year:

21 float

(day)/

365.0

* 1000.0)

22 

23 # read record data

24 book  = open_workbook(excel_file)

25 sheet = book.sheet_by_name(

'record')

26 rows_num = sheet.nrows

27 cols_num = sheet.ncols

28 forrow_num

inrange(3

,368):

29 try:

30 float

(sheet.cell(row_num,

1).value))

31 except:

32 0.0)

33 

34 # calculate sum of records

35 sum_record =

0.0

36 for

each_record

inrecords:

37 sum_record += each_record

38 39 

40 # calculate pct of all

41 foreach_sum

insum_records:

42 1000.0)

43 

44 # calculate target pct

45 forday

inrange(1

,366):

46 float

(day)/

365.0)

47 

48 # plot target and sum trend

49 ax = axs[0]

50 ax.plot(days_year,sum_records)

51 ax.plot(days_year,target_km)

52 ax.set_title(

'distance-year-km')

53 ax.grid(

true)

54 

55 # plot record

56 ax = axs[1]

57 ax.plot(days_year,records)

58 ax.set_title(

'distance-day-km')

59 ax.grid(

true)

60 

61 # plot percentage

62 ax = axs[2]

63 ax.plot(days_year,pct_records)

64 ax.plot(days_year,target_pct)

65 ax.set_title(

'pct-100%')

66 ax.grid(

true)

67 plt.show()

68 69

sportline(

'records.xlsx')

70 

我的運動資料記錄電子**格式如下:

程式執行,畫出的曲線如下:

基本差不多了,後面需要做的只有細節上的修正了。

python 繪製二維曲面 曲面繪製二維陣列

我試著從表面的例子著手 from mpl toolkits.mplot3d import axes3d from matplotlib import cm from matplotlib.ticker import linearlocator,formatstrformatter import ma...

一維 二維正態分佈概率密度曲線的繪製

在matlab中使用 y normpdf x,mu,sigma 函式求一維正態分佈的概率密度,其中x為隨機向量,mu為期望,sigma為標準差 matlab 如下 x 8 0.1 8 y1 normpdf x,0,1 期望為0,標準差為1的正態分佈 y2 normpdf x,1,2 期望為1,標準差...

Python中二維高斯函式的繪製

高斯核函式g x,y,二維高斯函式 的公式可以寫成 python 實現 import numpy as np import matplotlib.pyplot as plt from mpl toolkits.mplot3d import axes3d x,y np.mgrid 5 5 200j,5...