python學習筆記:矢量場流線圖和氣溫圖

2021-01-09 ACGN漫步者

氣溫圖#導入模塊 csv 後import csvfrom datetime import datetimefrom matplotlib import pyplot as plt#將要使用的文件的名稱存儲在 filename 中filename='sitka_weather_2014.csv'#打開這個文件,並將結果文件對象存儲在 f 中with open(filename) as f:#調用 csv.reader() ,並將前面存儲的文件對象作為實參傳遞給它# 從而創建一個與該文件相關聯的閱讀器( reader )對象 reader=csv.reader(f)#調用next()並將閱讀器對象傳遞給它時,得到的是文件的第一行,其中包含文件頭 header_row=next(reader)#創建三個列表dates,highs,lows,將日期時間,最高氣溫,最低氣溫,分別記錄到三個列表當中 dates,highs,lows=[],[],[] for row in reader: # 針對 ValueError 異常,列印一條錯誤消息, # 指出缺失數據的日期 try: #設置日期格式為****-**-**,Python中的第一列為第0列 # 所以高溫數據中的1代表CSV文件中的第二列,以下依次類推 current_date=datetime.strptime(row[0],"%Y-%m-%d") high=int(row[1]) low=int(row[3]) except ValueError: print(current_date,'missing data') else: dates.append(current_date) highs.append(high) lows.append(low)#設置圖紙的解析度和圖紙大小,繪製日期、高溫、低溫折線圖,顏色,透明度fig=plt.figure(dpi=128,figsize=(10,6))plt.plot(dates,highs,c='red',alpha=0.5)plt.plot(dates,lows,c='blue',alpha=0.5)#給高溫、低溫的間隔區域著色,透明度加大,與低溫曲線區分plt.fill_between(dates,highs,lows,facecolor='blue',alpha=0.1)# 設置圖形的格式plt.title("Daily high and low temperatures - 2014",fontsize=24)plt.xlabel('',fontsize=16)#自動設置日期在圖表中的位置,避免日期時間重疊fig.autofmt_xdate()plt.ylabel("Temperature(F)",fontsize=16)plt.tick_params(axis='both',which='major',labelsize=16)#展示plt.show()

figure1

2.顏色表圖

import matplotlib as mplimport matplotlib.pyplot as pltimport numpy as np#創建包含九種顏色的列表red_yellow_green=['#d73027','#f46d43','#fdae61','#fee08b','#ffffbf','#d9ef8b', '#a6d96a','#66bd63','#1a9850']#設置參數,創建一個子圖sample_size=1000fig,ax=plt.subplots(1)#創建一個for循環,分別繪製九種顏色的散點圖,range(9)代表上述列表中的九種顏色for i in range(9): #np.cumsum() 累計求和 y=np.random.normal(size=sample_size).cumsum() # 僅輸入stop(sample_size)值,此時start默認從0開始 x=np.arange(sample_size) ax.scatter(x,y,label=str(i),linewidth=0.1,edgecolors='grey', facecolor=red_yellow_green[i])#顯示圖例ax.legend()plt.show()

figure2

3.矢量場流線圖

#矢量場可以通過為每個點指定一個線條和一個或多個箭頭的方式來表示出來#強度根據線條長度來判斷,方向按照箭頭方向來判斷import matplotlib.pyplot as pltimport numpy as np#0:5表示數組中數值所在的區間。100j表示劃分的密度,值越大,圖片越清晰Y,X=np.mgrid[0:5:100j,0:5:100j]#(X,Y)是一維numpy數組的等距網格,(U,V)參數匹配的是(X,Y)速率的二維numpy數組#U,V矩陣在維度上的行數必須等於Y的長度,列的數量必須匹配X的長度U=np.sin(X)V=np.sin(Y)#pprint 包含一個「美觀印表機」,用於生成數據結構的一個美觀視圖。from pprint import pprint# print()和pprint()都是python的列印模塊,功能基本一樣# 唯一的區別就是pprint()模塊列印出來的數據結構更加完整,每行為一個數據結構,更加方便閱讀列印輸出結果。print ("X")pprint(X)#pprint()採用分行列印輸出print ("Y")pprint(Y)#可視化矢量場plt.streamplot(X,Y,U,V)plt.show()

得到以下文本

X

array([[0. , 0.05050505, 0.1010101 , ..., 4.8989899 , 4.94949495,

5. ],

[0. , 0.05050505, 0.1010101 , ..., 4.8989899 , 4.94949495,

5. ],

[0. , 0.05050505, 0.1010101 , ..., 4.8989899 , 4.94949495,

5. ],

...,

[0. , 0.05050505, 0.1010101 , ..., 4.8989899 , 4.94949495,

5. ],

[0. , 0.05050505, 0.1010101 , ..., 4.8989899 , 4.94949495,

5. ],

[0. , 0.05050505, 0.1010101 , ..., 4.8989899 , 4.94949495,

5. ]])

Y

array([[0. , 0. , 0. , ..., 0. , 0. ,

0. ],

[0.05050505, 0.05050505, 0.05050505, ..., 0.05050505, 0.05050505,

0.05050505],

[0.1010101 , 0.1010101 , 0.1010101 , ..., 0.1010101 , 0.1010101 ,

0.1010101 ],

...,

[4.8989899 , 4.8989899 , 4.8989899 , ..., 4.8989899 , 4.8989899 ,

4.8989899 ],

[4.94949495, 4.94949495, 4.94949495, ..., 4.94949495, 4.94949495,

4.94949495],

[5. , 5. , 5. , ..., 5. , 5. ,

5. ]])

figure3

相關焦點

  • 學習筆記,從NumPy到Scrapy,學習Python不能錯過這些庫
    在網絡上看到幾位前輩寫了關於python深度學習庫的文章,對於小小白來說,因為我剛開始學python,我得承認自己看完後依然覺得雲裡霧裡的,不知道這些庫到底對我有什麼用處。所以我到網絡上搜集補充關於這些庫的說明內容,感覺在這個整理資料的過程中,對於這些python程序庫了解了更多,以下是我整理的學習筆記。
  • 「python學習手冊-筆記」003.數值類型
    003.數值類型本系列文章是我個人學習《python學習手冊(第五版)》的學習筆記,其中大部分內容為該書的總結和個人理解,小部分內容為相關知識點的擴展。非商業用途轉載請註明作者和出處;商業用途請聯繫本人(gaoyang1019@hotmail.com)獲取許可。
  • 資源|用Python和NumPy學習《深度學習》中的線性代數基礎
    本文系巴黎高等師範學院在讀博士 Hadrien Jean 的一篇基礎學習博客,其目的是幫助初學者/高級初學者基於深度學習和機器學習來掌握線性代數的概念。掌握這些技能可以提高你理解和應用各種數據科學算法的能力。
  • python學習筆記:同時畫多圖,折線圖,箱線圖,條形圖,柱狀圖等
    (2,3,1)plot(x,y)#折線圖subplot(2,3,2)#縱向條形圖bar(x,y)subplot(2,3,3)#水平條形圖(h可以看做是horizontal的縮寫)barh(x,y)#畫一個(x,y)和(x,y1)兩個條形圖疊加在一起的圖,以(x,y)的柱狀圖為底subplot(2,3,4)bar(x,y)y1=[7,8,5,3]#'r'紅色bar(x,y1,bottom=y,color
  • Python學習5點思路(內附思維導圖)
    如果說你現在已經有了想學習編程的想法,那麼接下來我們就談談如何去學習編程。小會在這裡為大家提供一個Python學習思路:1、了解編程基礎概念首先要對計算機有個基本的認識,了解編程基礎概念及用編程解決現實問題的基本流程。
  • Python繪圖筆記:繪製四色散點圖和誤差條形圖
    1.散點圖一x,y坐標,顏色按照for循環中的四色進行變換 #設置透明度和點的邊緣色為無 ax.scatter(x, y, c=color, s=scale, label=color, alpha=0.3, edgecolors='none')#設置圖例和網格線ax.legend()ax.grid(True)plt.show()2.填充標記#python2
  • Python學習第90課-數據可視化之散點圖繪製
    【每天幾分鐘,從零入門python編程的世界!】今天我們學習散點圖,在統計學或者機器學習方面,或者在金融風險控制方面,金融風險控制經常要看異常交易、信貸風險,做這樣的分析就要用到一個圖--散點圖(scatter plot)。
  • 電磁場-矢量場的環量,旋度與旋度定理
    矢量場A沿有向閉合曲線l的線積分稱為矢量場A沿該曲線的環量。環量可以描述矢量場的漩渦特性,因此,環量可以表示產生具有漩渦特性的源強度但是環量代表的是閉合曲線包圍的總的源強度,它不能顯示源的分布特性,故而,為了描述源的分布特性,在矢量場中任取一點M,圍繞M作一條閉合的有向曲線l,該有向閉合曲線l包圍的面積為S,令其方向為S的法線方向,那麼極限就構成了矢量A的環量強度。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    (6套課程) 注:零基礎全能篇中,針對windows和liunx系統均有兩套課程可供選擇學習,單純學python,哪個系統都一樣,初學者只需選擇自己熟悉的系統學習相應課程即可。基於liunx系統的python教程,課程裡也有liunx操作的詳細教學,不用擔心學習時不會操作liunx系統。
  • python編程從入門到實踐:讀取整個文件和創建包含文件各行的內容
    1.python學習筆記:在文件編輯器中新建一個文件,寫幾句話來總結一下你至此學到的Python知識,其中每一行都以「In python you can」打頭。將這個文件命名為learning_python.txt,並將其存儲到為完成本章練習而編寫的程序所在的目錄中。
  • 吳恩達深度學習筆記(13)-多樣本梯度下降和向量化處理多批次數據
    同時你需要一起應用的就是邏輯回歸和梯度下降。所以在接下來的幾個筆記中,我們會談到向量化,以及如何應用向量化而連一個for循環都不使用。所以學習了這些,我希望你有關於如何應用邏輯回歸,或是用於邏輯回歸的梯度下降,事情會變得更加清晰。
  • 成都學習Python開發哪家好
    如何選擇成都python培訓機構? python程式語言語法清晰、乾淨、易讀、易維護、代碼量小、可讀性強。當團隊合作開發時,閱讀別人的代碼將是非常迅速和高效的。通俗說來就是「寫起來快、看起來明白!」所以近年來,python開發非常流行。
  • Python學習筆記:隨機漫步圖和三翼面圖
    Python隨機漫步圖:創建隨機漫步的類from random import choice# 一個生成隨機漫步數據的類class RandomWalk():#隨機漫步包含的默認點數設置為5000 def
  • 費曼學習法、時間統計法、整體學習法、康奈爾筆記、思維導圖
    Reflect,將自己的思考寫在最下面,加上標題和索引,編製成提綱、摘要,分類並歸檔。Review,每周花十分鐘,快速複習筆記,主要先看回憶欄,適當看主欄。6、思維導圖Thinking Map比較流行,用思維導圖做筆記,會讓人在視覺環境中輕鬆地整理知識、建立聯繫。
  • 學霸宅家學習環境和學習情況是什麼樣的?來看學霸筆記和神仙書桌
    「雲上課」的兩個月轉瞬即逝,福州大學FZUers也完成了一次從線下到線上 教室到書房,紙質書到電子書的無縫切換,那麼大家的宅家學習環境和學習情況,究竟是什麼樣子呢?是被窩、枕頭、小零食,還是平板、pencil、筆記本?
  • Python學習步驟
    Python10大特點:易於學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。易於閱讀:Python代碼定義的更清晰。一個廣泛的標準庫:Python的最大的優勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh兼容很好。互動模式:互動模式的支持,您可以從終端輸入執行代碼並獲得結果的語言,互動的測試和調試代碼片斷。
  • 慢步學習,python語言編程,來扯扯語言的學習理解
    程式語言的學習,也在於累積程式語言語句的使用情景和效果。因此學習編程最有效的方式就是編寫實例程序。不在於程序的完備,在於理解程序原始碼的適用場景和效果。例如筆者之前寫的一個實例代碼對於編程老鳥筆者不敢說啥,但對於初學者,這樣的例子,真的很實用,簡短,容易理解,還具備一定的功能。
  • 乾貨| 請收下這份2018學習清單:150個最好的機器學習,NLP和Python...
    在今年秋季開始準備博士項目的時候,我已經精選了一些有關機器學習和NLP的優質網絡資源。一般我會找一個有意思的教程或者視頻,再由此找到三四個,甚至更多的教程或者視頻。猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。
  • ...請收下這份2018學習清單:150個最好的機器學習,NLP和Python教程
    在今年秋季開始準備博士項目的時候,我已經精選了一些有關機器學習和NLP的優質網絡資源。一般我會找一個有意思的教程或者視頻,再由此找到三四個,甚至更多的教程或者視頻。猛回頭,發現標收藏夾又多了20個資源待我學習(推薦提升效率工具Tab Bundler)。
  • 天津python學習費用多少
    天津Python培訓機構怎麼選 隨著人工智慧的火熱,許多人想要學習Python,應該如何學習呢,現在許多人在自學之外,都會選擇去Python培訓機構學習,那麼什麼樣的python培訓機構靠譜?天津Python培訓機構怎麼選呢?