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