Python?matplotlib實(shí)現(xiàn)折線圖的繪制
官網(wǎng): https://matplotlib.org
一、版本
# 01 matplotlib安裝情況 import matplotlib matplotlib.__version__
二、圖表主題設(shè)置
請(qǐng)點(diǎn)擊:圖表主題設(shè)置
三、一次函數(shù)
import numpy as np
from matplotlib import pyplot as plt
# 如何使用中文標(biāo)題
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
x = np.arange(1,11)
y = 2 * x + 5 # 圖片顯示的是這個(gè)公式
plt.title("Matplotlib展示")
plt.xlabel("x軸")
plt.ylabel("y軸")
plt.plot(x,y)
plt.show()

四、多個(gè)一次函數(shù)
創(chuàng)建一個(gè)關(guān)于電影票房的圖表:
films=['穿過(guò)寒冬擁抱你','反貪風(fēng)暴5:最終章','李茂扮太子','誤殺2','以年為單位的戀愛','黑客帝國(guó):矩陣重啟','雄獅少年','魔法滿屋','汪汪隊(duì)立大功大電影','愛情神話']
regions=['中國(guó)','英國(guó)','澳大利亞','美國(guó)','美國(guó)','中國(guó)','英國(guó)','澳大利亞','美國(guó)','美國(guó)']
bos=['61,181','44,303','42,439','22,984','13,979','61,181','44,303','41,439','20,984','19,979']
persons=['31','23','56','17','9','31','23','56','17','9']
prices=['51','43','56','57','49','51','43','56','57','49']
showdate=['2022-12-03','2022-12-05','2022-12-01','2022-12-02','2022-11-05','2022-12-03','2022-12-05','2022-12-01','2022-12-02','2022-11-05']
ftypes=['劇情','動(dòng)作','喜劇','劇情','劇情','愛情','動(dòng)作','動(dòng)畫','動(dòng)畫','動(dòng)畫']
points=['8.1','9.0','7.9','6.7','3.8','8.1','9.0','7.9','6.7','3.8']
filmdescript={
'ftypes':ftypes,
'bos':bos,
'prices':prices,
'persons':persons,
'regions':regions,
'showdate':showdate,
'points':points
}import numpy as np
import pandas as pd
cnbo2021top5=pd.DataFrame(filmdescript,index=films)
cnbo2021top5[['prices','persons']]=cnbo2021top5[['prices','persons']].astype(int)
cnbo2021top5['bos']=cnbo2021top5['bos'].str.replace(',','').astype(int)
cnbo2021top5['showdate']=cnbo2021top5['showdate'].astype('datetime64')
cnbo2021top5['points']=cnbo2021top5['points'].apply(lambda x:float(x) if x!='' else 0)
關(guān)于cnboo1.xlsx,我放在我的碼云里,需要的朋友自行下載:cnboo1.xlsx
# 讀取并初步整理數(shù)據(jù)集
import pandas as pd
cnbodf=pd.read_excel('cnboo1.xlsx')
cnbodfsort=cnbodf.sort_values(by=['BO'],ascending=False)

def mkpoints(x,y): # 編寫points評(píng)分
return len(str(x))*(y/25)-3
cnbodfsort['points']=cnbodfsort.apply(lambda x:mkpoints(x.BO,x.PERSONS),axis=1)

cnbodfsort.to_excel("cnbodfsort.xlsx",index=False) # 創(chuàng)建一個(gè)Excel文件
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("票房2021TOP5")
plt.xlabel("x軸")
plt.ylabel("y軸")
x=cnbo2021top5.persons.sort_values()
y=cnbo2021top5.prices.sort_values()
plt.plot(x,y,marker=".",markersize=20,color='red',linewidth=4,markeredgecolor='blue')
plt.show()

# 折線圖進(jìn)階
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("中國(guó)票房2021TOP5")
plt.plot(bo,prices,label='票房與票價(jià)')
plt.plot(bo,persons,label='票房與人次')
plt.plot(bo,points,label='票房與評(píng)價(jià)')
plt.legend() # 顯示標(biāo)簽
plt.xlabel('票房') # 橫坐標(biāo)軸
plt.ylabel('行情') # 縱坐標(biāo)軸
plt.show()

更改一下版式
# 折線圖進(jìn)階
from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("中國(guó)票房2021TOP5")
plt.plot(bo,prices,'r^--',label='票房與票價(jià)')
plt.plot(bo,persons,'g*-',label='票房與人次')
plt.plot(bo,points,color='blue',marker='o',markersize=10,label='票房與評(píng)價(jià)')
plt.legend() # 顯示標(biāo)簽
plt.xlabel('票房') # 橫坐標(biāo)軸標(biāo)題
plt.ylabel('行情') # 縱坐標(biāo)軸標(biāo)題
plt.show()

五、填充折線圖
填充折線圖:當(dāng)確定一條數(shù)據(jù)線上面的一點(diǎn)的時(shí)候,能夠?qū)⒃擖c(diǎn)的上下兩部分分別使用不同的顏色填充。
dev_x=[25,26,27,28,29,30] # 開發(fā)者的年齡 dev_y=[7567,8789,8900,11560,16789,25231] #收入情況 py_dev_y=[5567,6789,9098,15560,20789,23231] # python開發(fā)者 js_dev_y=[6567,7789,8098,12356,14789,20231] # java開發(fā)者 devsalary=pd.DataFrame([dev_x,dev_y,py_dev_y,js_dev_y]) devsalaryT=pd.DataFrame(devsalary.values.T,columns=["Age","Dev","Python","Java"])
# 繪制帶陰影的折線圖
from matplotlib import pyplot as plt
plt.style.use('classic')
plt.figure(figsize=(7,4))
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("開發(fā)人員薪資情況")
baseline=10000
plt.plot(devsalaryT["Age"],devsalaryT["Dev"],label="總體薪資")
plt.plot(devsalaryT["Age"],devsalaryT["Python"],label="Python薪資") # 如果沒有l(wèi)abel是不會(huì)顯示legend的數(shù)據(jù)標(biāo)簽的
plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],baseline,where=(devsalaryT["Python"]>baseline),interpolate=True,color='yellow')
plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],baseline,where=(devsalaryT["Python"]<=baseline),interpolate=True,color='red')
plt.grid()
plt.legend()
plt.show()

# 繪制帶陰影的折線圖
from matplotlib import pyplot as plt
plt.style.use('classic')
plt.figure(figsize=(7,4))
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("開發(fā)人員薪資情況")
baseline=10000
plt.plot(devsalaryT["Age"],devsalaryT["Dev"],label="總體薪資")
plt.plot(devsalaryT["Age"],devsalaryT["Python"],label="Python薪資") # 如果沒有l(wèi)abel是不會(huì)顯示legend的數(shù)據(jù)標(biāo)簽的
plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],baseline,where=(devsalaryT["Python"]>baseline),interpolate=True,color='yellow',alpha=0.3)
plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],baseline,where=(devsalaryT["Python"]<=baseline),interpolate=True,color='red',alpha=0.3) # alpha=0.3調(diào)整透明度
plt.grid()
plt.legend()
plt.show()

# 繪制帶陰影的折線圖
from matplotlib import pyplot as plt
plt.style.use('classic')
plt.figure(figsize=(7,4))
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("開發(fā)人員薪資情況")
baseline=10000
plt.plot(devsalaryT["Age"],devsalaryT["Dev"],label="總體薪資")
plt.plot(devsalaryT["Age"],devsalaryT["Python"],label="Python薪資") # 如果沒有l(wèi)abel是不會(huì)顯示legend的數(shù)據(jù)標(biāo)簽的
plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],baseline,where=(devsalaryT["Python"]>baseline),interpolate=True,color='pink',alpha=0.7,label="高于10000元")
plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],baseline,where=(devsalaryT["Python"]<=baseline),interpolate=True,color='purple',alpha=0.7,label="低于或等于10000元") # alpha=0.3調(diào)整透明度
plt.grid()
plt.legend()
plt.show()

interpolate=True:將交叉的位置進(jìn)行填充
# 繪制帶陰影的折線圖
from matplotlib import pyplot as plt
plt.style.use('classic')
plt.figure(figsize=(7,4))
plt.rcParams['font.sans-serif']=['Microsoft YaHei'] # 使用微軟雅黑的字體
plt.title("開發(fā)人員薪資情況")
plt.plot(devsalaryT["Age"],devsalaryT["Dev"],label="總體薪資")
plt.plot(devsalaryT["Age"],devsalaryT["Python"],label="Python薪資") # 如果沒有l(wèi)abel是不會(huì)顯示legend的數(shù)據(jù)標(biāo)簽的
plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],devsalaryT["Dev"],where=(devsalaryT["Python"]>baseline),interpolate=True,color='green',alpha=0.7,label="高于總體")
plt.fill_between(devsalaryT["Age"],devsalaryT["Python"],devsalaryT["Dev"],where=(devsalaryT["Python"]<=baseline),interpolate=True,color='tomato',alpha=0.7,label="低于或等于總體") # alpha=0.3調(diào)整透明度
plt.grid()
plt.legend()
plt.show()

到此這篇關(guān)于Python matplotlib實(shí)現(xiàn)折線圖的繪制的文章就介紹到這了,更多相關(guān)Python matplotlib折線圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Selenium定位元素的方法小結(jié)及語(yǔ)法詳解
Selenium是一種用于自動(dòng)化網(wǎng)頁(yè)操作的工具,通過(guò)不同定位策略可以精準(zhǔn)定位網(wǎng)頁(yè)元素,本文介紹了8種定位方法,并詳細(xì)說(shuō)明了每種方法的語(yǔ)法、使用場(chǎng)景及實(shí)際操作中的注意事項(xiàng),需要的朋友可以參考下2025-02-02
在Python中利用Into包整潔地進(jìn)行數(shù)據(jù)遷移的教程
這篇文章主要介紹了在Python中如何利用Into包整潔地進(jìn)行數(shù)據(jù)遷移,在數(shù)據(jù)格式的任意兩個(gè)格式之間高效地遷移數(shù)據(jù),需要的朋友可以參考下2015-03-03
Python實(shí)現(xiàn)自動(dòng)為照片添加日期并分類的方法
這篇文章主要介紹了Python實(shí)現(xiàn)自動(dòng)為照片添加日期并分類的方法,涉及Python針對(duì)文件與目錄的遍歷、判斷、修改、復(fù)制及文件屬性的相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
每個(gè) Python 開發(fā)者都應(yīng)該知道的7種好用工具(效率翻倍)
Python 從一種小的開源語(yǔ)言開始,到現(xiàn)在,它已經(jīng)成為開發(fā)者很受歡迎的編程語(yǔ)言之一。這篇文章主要介紹了每個(gè) Python 開發(fā)者都應(yīng)該知道的7種好用工具(效率翻倍),需要的朋友可以參考下2021-03-03
使用pandas對(duì)矢量化數(shù)據(jù)進(jìn)行替換處理的方法
下面小編就為大家分享一篇使用pandas對(duì)矢量化數(shù)據(jù)進(jìn)行替換處理的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
Python實(shí)現(xiàn)OpenCV中文路徑圖片讀寫的詳細(xì)指南
在Python中使用OpenCV處理圖片時(shí),涉及讀取和保存圖片的操作,可能會(huì)遇到中文路徑的兼容性問題,該指南的目的是展示如何正確處理帶有中文路徑的圖片,并使用OpenCV將圖片保存到指定的中文路徑,需要的朋友可以參考下2025-03-03
python實(shí)現(xiàn)密碼驗(yàn)證合格程序的思路詳解
這篇文章主要介紹了python實(shí)現(xiàn)密碼驗(yàn)證合格程序的思路詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06

