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=['穿過寒冬擁抱你','反貪風(fēng)暴5:最終章','李茂扮太子','誤殺2','以年為單位的戀愛','黑客帝國:矩陣重啟','雄獅少年','魔法滿屋','汪汪隊(duì)立大功大電影','愛情神話'] regions=['中國','英國','澳大利亞','美國','美國','中國','英國','澳大利亞','美國','美國'] 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("中國票房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("中國票房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)文章
關(guān)于Python內(nèi)存分配時(shí)的小秘密分享
這篇文章主要給大家分享介紹了關(guān)于Python內(nèi)存分配時(shí)的小秘密,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09CentOS 7下Python 2.7升級(jí)至Python3.6.1的實(shí)戰(zhàn)教程
Centos是目前最為流行的Linux服務(wù)器系統(tǒng),其默認(rèn)的Python 2.x,這篇文章主要給大家分享了關(guān)于在CentOS 7下Python 2.7升級(jí)至Python3.6.1的實(shí)戰(zhàn)教程,文中將升級(jí)的步驟一步步的介紹的非常詳細(xì),對(duì)大家的理解和學(xué)習(xí)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-07-07使用python實(shí)現(xiàn)省市三級(jí)菜單效果
本文給大家分享的是使用使用python實(shí)現(xiàn)省市三級(jí)菜單效果的代碼,非常的實(shí)用,有需要的小伙伴可以參考下。2016-01-01python寫入csv時(shí)writerow()和writerows()函數(shù)簡單示例
這篇文章主要給大家介紹了關(guān)于python寫入csv時(shí)writerow()和writerows()函數(shù)的相關(guān)資料,writerows和writerow是Python中csv模塊中的兩個(gè)函數(shù),用于將數(shù)據(jù)寫入CSV文件,需要的朋友可以參考下2023-07-07Scrapy框架爬取西刺代理網(wǎng)免費(fèi)高匿代理的實(shí)現(xiàn)代碼
今天小編就為大家分享一篇關(guān)于Scrapy框架爬取西刺代理網(wǎng)免費(fèi)高匿代理的實(shí)現(xiàn)代碼,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02妙用itchat! python實(shí)現(xiàn)久坐提醒功能
python編寫的久坐提醒,給最愛的那個(gè)她,這篇文章主要為大家分享了python久坐提醒功能的實(shí)現(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11python GUI庫圖形界面開發(fā)之PyQt5布局控件QGridLayout詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5布局控件QGridLayout詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-03-03Python深度學(xué)習(xí)實(shí)戰(zhàn)PyQt5窗口切換的堆疊布局示例詳解
本文以堆疊窗口控件為例,詳細(xì)介紹堆疊布局的界面設(shè)計(jì)和程序?qū)崿F(xiàn)過程,通過案例帶小白創(chuàng)建一個(gè)典型的堆疊布局多窗口切換程序2021-10-10Python使用pandas導(dǎo)入xlsx格式的excel文件內(nèi)容操作代碼
這篇文章主要介紹了Python使用pandas導(dǎo)入xlsx格式的excel文件內(nèi)容,基本導(dǎo)入是在Python中使用pandas導(dǎo)入.xlsx文件的方法是read_excel(),本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12