Python?數(shù)據(jù)可視化超詳細講解折線圖的實現(xiàn)
繪制簡單的折線圖
?在使用matplotlib繪制簡單的折線圖之前首先需要安裝matplotlib,直接在pycharm終端pip install matplotlib即可
?使用matplotlib繪制簡單的折線圖,再對其進行定制,實現(xiàn)數(shù)據(jù)的可視化操作
import matplotlib.pyplot as plt # 導入pyplot模塊并設置別名為plt squares = [1, 4, 9, 16, 25] plt.plot(squares) plt.show() # 打開matplotib查看器,并顯示繪制的圖形
運行結果如下:
修改標簽文字和線條粗細
上圖所示的圖形表示的數(shù)字越來越大,但標簽文字太小,線條太細,不方便觀察,這時就需要調整一下增加圖形的可讀性
import matplotlib.pyplot as plt # 導入pyplot模塊并設置別名為plt squares = [1, 4, 9, 16, 25] plt.plot(squares, linewidth=5) # 函數(shù)linewidth設置繪制線條的粗細 # 設置圖表標題,并給坐標軸加上標簽 plt.title('Square number', fontsize=24) plt.xlabel('Value', fontsize=14) plt.ylabel('Square of Value', fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis='both', labelsize=14) plt.show() # 打開matplotib查看器,并顯示繪制的圖形
效果如下:
校正圖形
圖形更容易閱讀了,但我們發(fā)現(xiàn)沒有正確的繪制數(shù)據(jù),折線圖的終點指出4的平方為25!
向plot()提供一系列數(shù)字時,它假設第一個數(shù)據(jù)點對應的x坐標值為0,但我們的第一個點對應的x值為1。為改變這種默認行為,我們可以給plot同時提供輸入值和輸出值。
import matplotlib.pyplot as plt # 導入pyplot模塊并設置別名為plt input_value = [1, 2, 3, 4, 5] squares = [1, 4, 9, 16, 25] plt.plot(input_value, squares, linewidth=5) # 函數(shù)linewidth設置繪制線條的粗細 # 設置圖表標題,并給坐標軸加上標簽 plt.title('Square number', fontsize=24) plt.xlabel('Value', fontsize=14) plt.ylabel('Square of Value', fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis='both', labelsize=14) plt.show() # 打開matplotib查看器,并顯示繪制的圖形
效果如下:
現(xiàn)在plot()成功繪制數(shù)據(jù),因為我們同時提供了輸入值和輸出值。使用plot()時可指定各種實參,還可使用眾多函數(shù)對圖像進行定制
使用scatter()繪制散點圖并設置其格式
有時候需要繪制散點圖并設置各個數(shù)據(jù)的格式。例如:你可能想以一種顏色顯示較小的值,用一種顏色顯示較大的值。繪制大型數(shù)據(jù)集時,你還可以對每個點都設置同樣的格式,再使用不同的樣式選項重新繪制某個點,以突出它們 ?要繪制單個點,可使用函數(shù)scatter(),并向它傳遞一對x,y坐標,它將在指定繪制繪制一個點
import matplotlib.pyplot as plt plt.scatter(2, 4) # 向scatter函數(shù)傳遞一對x,y坐標 plt.show() # 打開matplotib查看器,并顯示繪制的圖形
效果如下:
下面來設置輸出的樣式,使其更有趣:添加標題,給坐標軸加上標簽,并設置文本格式
import matplotlib.pyplot as plt plt.scatter(2, 4, s=200) # 向scatter函數(shù)傳遞一對x,y坐標 # 設置圖表標題,并給坐標軸加上標簽 plt.title('Square number', fontsize=24) plt.xlabel('Value', fontsize=14) plt.ylabel('Square of Value', fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis='both', which='major', labelsize=14) plt.show() # 打開matplotib查看器,并顯示繪制的圖形
效果如下:
使用scatter()繪制一系列點
import matplotlib.pyplot as plt x_values = [1, 2, 3, 4, 5] y_values = [1, 4, 9, 16, 25] plt.scatter(x_values, y_values, s=100) # 向scatter函數(shù)傳遞一對x,y坐標 # 設置圖表標題,并給坐標軸加上標簽 plt.title('Square number', fontsize=24) plt.xlabel('Value', fontsize=14) plt.ylabel('Square of Value', fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis='both', which='major', labelsize=14) plt.show() # 打開matplotib查看器,并顯示繪制的圖形
效果如下:
自動計算數(shù)據(jù)
手動計算列表包含的值很麻煩,可以利用python中的循環(huán)來解決,下面是繪制1000個點的范例:
import matplotlib.pyplot as plt x_values = list(range(1, 1001)) y_values = [x ** 2 for x in x_values] plt.scatter(x_values, y_values, s=10) # 向scatter函數(shù)傳遞一對x,y坐標 # 設置圖表標題,并給坐標軸加上標簽 plt.title('Square number', fontsize=24) plt.xlabel('Value', fontsize=14) plt.ylabel('Square of Value', fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis='both', which='major', labelsize=14) # 設置每個坐標軸的取值范圍 plt.axis([0, 1100, 0, 1100000]) plt.show() # 打開matplotib查看器,并顯示繪制的圖形
?這里需要注意函數(shù)axis需要傳入四個值,x,y坐標的最小值,最大值 效果如下:
刪除數(shù)據(jù)點的輪廓
要刪除數(shù)據(jù)點的輪廓,可在調用scatter()時傳遞實參edgecolor=‘none’
plt.scatter(x_values, y_values, edgecolors='none', s=10)
import matplotlib.pyplot as plt x_values = list(range(1, 1001)) y_values = [x ** 2 for x in x_values] plt.scatter(x_values, y_values, edgecolors='none', s=10) # 向scatter函數(shù)傳遞一對x,y坐標 # 設置圖表標題,并給坐標軸加上標簽 plt.title('Square number', fontsize=24) plt.xlabel('Value', fontsize=14) plt.ylabel('Square of Value', fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis='both', which='major', labelsize=14) # 設置每個坐標軸的取值范圍 plt.axis([0, 1100, 0, 1100000]) plt.show() # 打開matplotib查看器,并顯示繪制的圖形
效果如下:
自定義顏色
要修改數(shù)據(jù)點的顏色,可向scatter()傳遞參數(shù)c,并將其設置要使用的顏色的名稱
plt.scatter(x_values, y_values, c='red',edgecolors='none', s=10)
import matplotlib.pyplot as plt x_values = list(range(1, 1001)) y_values = [x ** 2 for x in x_values] plt.scatter(x_values, y_values, c='red',edgecolors='none', s=10) # 向scatter函數(shù)傳遞一對x,y坐標 # 設置圖表標題,并給坐標軸加上標簽 plt.title('Square number', fontsize=24) plt.xlabel('Value', fontsize=14) plt.ylabel('Square of Value', fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis='both', which='major', labelsize=14) # 設置每個坐標軸的取值范圍 plt.axis([0, 1100, 0, 1100000]) plt.show() # 打開matplotib查看器,并顯示繪制的圖形
效果如下:
使用顏色映射
顏色映射(colormap)是一系列顏色,它們從顏色漸變到結束顏色。在可視化中,顏色映射用于突出數(shù)據(jù)的規(guī)律,例如,你可能用較淺的顏色顯示較小的值,并使用較深的顏色顯示較大的值
import matplotlib.pyplot as plt x_values = list(range(1, 1001)) y_values = [x ** 2 for x in x_values] # 將c設置為y值列表,使用參數(shù)cmap告訴pyplot使用哪個顏色映射 plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, edgecolors='none', s=10) # 向scatter函數(shù)傳遞一對x,y坐標 # 設置圖表標題,并給坐標軸加上標簽 plt.title('Square number', fontsize=24) plt.xlabel('Value', fontsize=14) plt.ylabel('Square of Value', fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis='both', which='major', labelsize=14) # 設置每個坐標軸的取值范圍 plt.axis([0, 1100, 0, 1100000]) plt.show() # 打開matplotib查看器,并顯示繪制的圖形
自動保存圖表
要讓程序自動將圖表保存到文件中,可將對plt.show()的調用替換為對plt.sacefig()的調用
plt.savefig('squares.png',bbox_inches='tight')
第一個實參指定要以什么樣的文件名保存圖表,第二個實參指定將圖表多余的空白區(qū)域裁剪(如果要保留,可省略這個實參)
import matplotlib.pyplot as plt x_values = list(range(1, 1001)) y_values = [x ** 2 for x in x_values] # 將c設置為y值列表,使用參數(shù)cmap告訴pyplot使用哪個顏色映射 plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, edgecolors='none', s=10) # 向scatter函數(shù)傳遞一對x,y坐標 # 設置圖表標題,并給坐標軸加上標簽 plt.title('Square number', fontsize=24) plt.xlabel('Value', fontsize=14) plt.ylabel('Square of Value', fontsize=14) # 設置刻度標記的大小 plt.tick_params(axis='both', which='major', labelsize=14) # 設置每個坐標軸的取值范圍 plt.axis([0, 1100, 0, 1100000]) plt.savefig('squares.png',bbox_inches='tight') plt.show() # 打開matplotib查看器,并顯示繪制的圖形
保存效果如下:
?注意事項: 一定要把保存圖表的代碼放在plt.show前面,要是放在后面show會重新創(chuàng)建新的圖片
以上就是繪制簡單折線圖的教程,如果有改進的建議歡迎在評論區(qū)留言奧
??人生苦短,我用python??
到此這篇關于Python 數(shù)據(jù)可視化超詳細講解折線圖的實現(xiàn)的文章就介紹到這了,更多相關Python 折線圖內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python實現(xiàn)將DNA序列存儲為tfr文件并讀取流程介紹
為什么要在實驗過程中存儲文件,因為有些算法的內容存在一些重復計算的步驟,這些步驟往往消耗很大一部分時間,在有大量參數(shù)的情況時,需要在多次不同參數(shù)的情況下重復試驗,因此可以考慮將一些不涉及參數(shù)運算的部分結果存入文件中2022-09-09手把手教你搭建python+selenium自動化環(huán)境(圖文)
本文主要介紹了手把手教你搭建python+selenium自動化環(huán)境,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06簡單談談Python中的幾種常見的數(shù)據(jù)類型
Python 中的變量不需要聲明。每個變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建。在 Python 中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內存中對象的類型。2017-02-02