日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

matplotlib 标签_Python可视化matplotlibamp;seborn14热图heatmap

發(fā)布時(shí)間:2025/3/21 python 83 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matplotlib 标签_Python可视化matplotlibamp;seborn14热图heatmap 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

"pythonic生物人"的第53篇分享。

熱力圖(heatmap)可通過顏色深淺變化,優(yōu)雅的展示數(shù)據(jù)的差異;本篇詳細(xì)介紹python seaborn繪制熱圖(手把手講解)。

本文您將學(xué)到什么?

1、matplotlib繪制熱圖

2、seaborn繪制熱圖?

2.0 數(shù)據(jù)集準(zhǔn)備

2.1 seaborn繪制heatmap?2.1.1 seaborn默認(rèn)參數(shù)繪制hetmap2.1.2 colorbar(圖例)范圍修改:vmin、vmax2.1.3 修改熱圖顏色盤(colormap):cmp
  • 使用matplotlib中colormap

  • 使用Seaborn顏色盤?

  • 使用palettable庫中顏色盤?

2.1.4 修改圖例中心數(shù)據(jù)值大小:center2.1.5 熱圖中文本開關(guān):annot2.1.6 格子中數(shù)據(jù)的格式化輸出:fmt2.1.7 格子中數(shù)據(jù)(字體大小、磅值、顏色)等設(shè)置:annot_kws2.1.8 格子外框?qū)挾取㈩伾O(shè)置:linewidths、linecolor2.1.9 圖例開關(guān):cbar2.1.10 圖例位置、名稱、標(biāo)簽等設(shè)置:cbar_kws2.1.11 熱圖中只顯示部分符合條件的數(shù)據(jù):mask2.1.12 自定義x軸、y軸標(biāo)簽:xticklabels、yticklabels

3、seaborn.heatmap所有參數(shù)詳解代碼

正文開始啦

1、matplotlib繪制熱圖

matplotlib可通過以下兩種方法繪制heamap;

  • matplotlib.axes.Axes.imshow
  • matplotlib.pyplot.imshow

原始效果圖,挺丑陋的;改進(jìn)后效果圖(雖然要寫很多輔助函數(shù)實(shí)現(xiàn),但是可以很好的實(shí)現(xiàn)自定義熱圖,需要高度個(gè)性化的小伙伴可以去摸索);?


2、seaborn繪制熱圖

seaborn在matplotlib的基礎(chǔ)上封裝了個(gè)seaborn.heatmap,非常傻瓜式操作,我等調(diào)包俠的福音,效果可以趕得上R語言了,不逼逼,下面上干貨:

2.0 數(shù)據(jù)集準(zhǔn)備

使用鳶尾花iris數(shù)據(jù)集,數(shù)據(jù)集詳細(xì)介紹請戳:鳶尾花iris數(shù)據(jù)集;

import?matplotlib.pyplot?as?pltimport?numpy?as?npimport?pandas?as?pdfrom?pandas?import?Series,DataFrameimport?seaborn?as?snsimport?palettable#python顏色庫from?sklearn?import?datasets?
plt.rcParams['font.sans-serif']=['SimHei']??#?用于顯示中文
plt.rcParams['axes.unicode_minus']?=?False??#?用于顯示中文
iris=datasets.load_iris()
x,?y?=?iris.data,?iris.target
pd_iris?=?pd.DataFrame(np.hstack((x,?y.reshape(150,?1))),columns=['sepal?length(cm)','sepal?width(cm)','petal?length(cm)','petal?width(cm)','class']?)
plt.figure(dpi=200,?figsize=(10,6))
data1?=?np.array(pd_iris['sepal?length(cm)']).reshape(25,6)#Series轉(zhuǎn)np.array
df?=?pd.DataFrame(data1,?
??????????????????index=[chr(i)?for?i?in?range(65,?90)],#DataFrame的行標(biāo)簽設(shè)置為大寫字母
??????????????????columns=["a","b","c","d","e","f"])#設(shè)置DataFrame的列標(biāo)簽

用來繪制熱圖的數(shù)據(jù)集是什么樣子的?其實(shí)就是取iris中的一列(150個(gè)值),轉(zhuǎn)化為一個(gè)25x6的DataFrame數(shù)據(jù)集,如下:

print(df.shape)
df.head()

2.1 seaborn繪制heatmap

語法:seaborn.heatmap

2.1.1 seaborn默認(rèn)參數(shù)繪制hetmap

plt.figure(dpi=120)
sns.heatmap(data=df,#矩陣數(shù)據(jù)集,數(shù)據(jù)的index和columns分別為heatmap的y軸方向和x軸方向標(biāo)簽???????????????
?????????)
plt.title('所有參數(shù)默認(rèn)')

2.1.2 colorbar(圖例)范圍修改:vmin、vmax

#右側(cè)colorbar范圍修改#注意colorbar范圍變化,左圖顏色隨之變化
plt.clf()
plt.figure(dpi=120)
sns.heatmap(data=df,#矩陣數(shù)據(jù)集,數(shù)據(jù)的index和columns分別為heatmap的y軸方向和x軸方向標(biāo)簽
?????????????????vmin=5,#圖例(右側(cè)顏色條color?bar)中最小顯示值?
?????????????????vmax=8,#圖例(右側(cè)顏色條color?bar)中最大顯示值
???????????)
plt.title('右側(cè)colorbar顯示范圍修改:vmin、vmax')?

2.1.3 修改熱圖顏色盤(colormap):cmp

感覺默認(rèn)顏色太丑陋,可以換個(gè)顏色盤,cmp參數(shù)控制hetmap顏色;
可以使用matplotlib顏色盤、seaborn顏色盤、palettable庫中顏色盤

使用matplotlib中colormap

了解matplotlib中所有colormap請戳:matplotlib中colormap使用詳解

plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=plt.get_cmap('Set3'),#使用matplotlib中的顏色盤
???????????)
plt.title("使用matplotlib中的顏色盤:cmap=plt.get_cmap('Set3')")#?感覺顏色還是丑,那就再換個(gè)
plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=plt.get_cmap('tab20c'),#matplotlib中的顏色盤'tab20c'
???????????)
plt.title("使用matplotlib中的顏色盤:cmap=plt.get_cmap('tab20c')")#感覺太油膩,太花哨,那就來個(gè)純一點(diǎn)的(色度依次增加,請看右邊圖例顏色變化)
plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=plt.get_cmap('Greens'),#matplotlib中的顏色盤'Greens'
???????????)
plt.title("使用matplotlib中的顏色盤:cmap=plt.get_cmap('Greens')")#色度依次遞減,注意比較右邊圖例顏色變化
plt.figure(dpi=120)
sns.heatmap(data=df,?????????????????#cmap選取的顏色條,有的是由淺到深('Greens'),有的是相反的('Greens_r')
????????????cmap=plt.get_cmap('Greens_r'),#matplotlib中的顏色盤'Greens_r'
???????????)
plt.title("使用matplotlib中的顏色盤:cmap=plt.get_cmap('Greens_r')")

使用Seaborn顏色盤

plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=sns.dark_palette("#2ecc71",?as_cmap=True),#seaborn 深色色盤:sns.dark_palette使用
???????????)
plt.title("使用seaborn dark顏色盤:cmap=sns.dark_palette('#2ecc71', as_cmap=True)")plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=sns.light_palette("#2ecc71",?as_cmap=True),#淡色色盤:sns.light_palette()使用
???????????)
plt.title("使用seaborn light顏色盤:sns.light_palette('#2ecc71', as_cmap=True)")plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=sns.diverging_palette(10,?220,?sep=80,?n=7),#區(qū)分度顯著色盤:sns.diverging_palette()使用
???????????)
plt.title("使用seaborn diverging顏色盤:sns.diverging_palette(10, 220, sep=80, n=7)")plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=sns.cubehelix_palette(as_cmap=True),#漸變色盤:sns.cubehelix_palette()使用
???????????)
plt.title("使用seaborn cubehelix顏色盤:sns.diverging_palette(220, 20, sep=20, as_cmap=True)")

使用palettable庫中顏色盤

關(guān)于python palettable庫使用請戳:python Palettable庫使用詳解

plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=palettable.cartocolors.diverging.ArmyRose_7.mpl_colors,#使用palettable庫中顏色條
???????????)
plt.title("使用palettable庫顏色盤:palettable.cartocolors.diverging.ArmyRose_7.mpl_colors")plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=palettable.cmocean.diverging.Curl_10.mpl_colors,#使用palettable庫中顏色條
???????????)
plt.title("使用palettable庫顏色盤:palettable.cmocean.diverging.Curl_10.mpl_colors")plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=palettable.tableau.TrafficLight_9.mpl_colors,#使用palettable庫中顏色條
???????????)
plt.title("使用palettable庫顏色盤:palettable.tableau.TrafficLight_9.mpl_colors")

2.1.4 修改圖例中心數(shù)據(jù)值大小:center

plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=palettable.cartocolors.diverging.ArmyRose_7.mpl_colors,
????????????center=7,#color?bar的中心數(shù)據(jù)值大小,可以控制整個(gè)熱圖的顏盤深淺
???????????)
plt.title("color bar的中心數(shù)據(jù)值大小:center")

2.1.5 熱圖中文本開關(guān):annot

plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=palettable.cartocolors.diverging.ArmyRose_7.mpl_colors,
????????????annot=True,#默認(rèn)為False,當(dāng)為True時(shí),在每個(gè)格子寫入data中數(shù)據(jù)
???????????)
plt.title("每個(gè)格子寫入data中數(shù)據(jù):annot=True")

2.1.6 格子中數(shù)據(jù)的格式化輸出:fmt

plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=palettable.cartocolors.diverging.ArmyRose_7.mpl_colors,
????????????annot=True,#默認(rèn)為False,當(dāng)為True時(shí),在每個(gè)格子寫入data中數(shù)據(jù)
????????????fmt=".2f",#設(shè)置每個(gè)格子中數(shù)據(jù)的格式,參考之前的文章,此處保留兩位小數(shù)
???????????)
plt.title("格子中數(shù)據(jù)的格式化輸出:fmt")

2.1.7 格子中數(shù)據(jù)(字體大小、磅值、顏色)等設(shè)置:annot_kws

plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=palettable.cartocolors.diverging.ArmyRose_7.mpl_colors,
????????????annot=True,#默認(rèn)為False,當(dāng)為True時(shí),在每個(gè)格子寫入data中數(shù)據(jù)
????????????annot_kws={'size':8,'weight':'normal',?'color':'blue'},#設(shè)置格子中數(shù)據(jù)的大小、粗細(xì)、顏色
???????????)
plt.title("格子中數(shù)據(jù)(字體大小、磅值、顏色)等設(shè)置:annot_kws")

2.1.8 格子外框?qū)挾取㈩伾O(shè)置:linewidths、linecolor

plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=palettable.cartocolors.diverging.ArmyRose_7.mpl_colors,
????????????linewidths=1,#每個(gè)格子邊框?qū)挾?#xff0c;默認(rèn)為0
????????????linecolor='red',#每個(gè)格子邊框顏色,默認(rèn)為白色
???????????)
plt.title("格子外框?qū)挾取㈩伾O(shè)置:linewidths、linecolor")

2.1.9 圖例開關(guān):cbar

plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=palettable.cartocolors.diverging.ArmyRose_7.mpl_colors,
????????????cbar=False,#右側(cè)圖例(color?bar)開關(guān),默認(rèn)為True顯示
???????????)
plt.title("圖例開關(guān):cbar")

2.1.10?圖例位置、名稱、標(biāo)簽等設(shè)置:cbar_kws

plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=palettable.cartocolors.diverging.ArmyRose_7.mpl_colors,
????????????cbar=True,
????????????cbar_kws={'label':?'ColorbarName',?#color?bar的名稱'orientation':?'horizontal',#color?bar的方向設(shè)置,默認(rèn)為'vertical',可水平顯示'horizontal'"ticks":np.arange(4.5,8,0.5),#color?bar中刻度值范圍和間隔"format":"%.3f",#格式化輸出color?bar中刻度值"pad":0.15,#color?bar與熱圖之間距離,距離變大熱圖會(huì)被壓縮
???????????????????????????????????????????????????},
???????????)
plt.title("圖例位置、名稱、標(biāo)簽等設(shè)置:cbar_kws")

2.1.11 熱圖中只顯示部分符合條件的數(shù)據(jù):mask

plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=palettable.cartocolors.diverging.ArmyRose_7.mpl_colors,
????????????mask=df<6.0,#熱圖中顯示部分?jǐn)?shù)據(jù):顯示數(shù)值小于6的數(shù)據(jù)?
?????????)
plt.title("熱圖中只顯示部分符合條件的數(shù)據(jù):mask")

2.1.12 自定義x軸、y軸標(biāo)簽:xticklabels、yticklabels

#?linewidths、linecolor參數(shù)
plt.figure(dpi=120)
sns.heatmap(data=df,
????????????cmap=palettable.cartocolors.diverging.ArmyRose_7.mpl_colors,
????????????xticklabels=['三連啊','關(guān)注公眾號啊','pythonic生物人','收藏啊','點(diǎn)贊啊','老鐵三連三連']?,?#x軸方向刻度標(biāo)簽開關(guān)、賦值,可選“auto”,?bool,?list-like(傳入列表),?or?int,
????????????yticklabels=True,?#y軸方向刻度標(biāo)簽開關(guān)、同x軸
?????????)
plt.title("自定義x軸、y軸標(biāo)簽:xticklabels、yticklabels")#['sepal?length(cm)','sepal?width(cm)','petal?length(cm)','petal?width(cm)','class']?

3、seaborn.heatmap所有參數(shù)詳解代碼

感興趣的小火伴,可以關(guān)注我的公眾號免費(fèi)獲取源代碼:

4、參考資料

https://matplotlib.org/api/_as_gen/matplotlib.pyplot.imshow.html#matplotlib.pyplot.imshow

http://seaborn.pydata.org/generated/seaborn.heatmap.html?highlight=heatmap#seaborn.heatmap

本篇結(jié)束,下一篇詳細(xì)介紹聚類熱圖,感興趣小伙伴歡迎跟蹤我。

同系列文章
Python可視化|matplotlib12-垂直|水平|堆積條形圖詳解Python可視化|matplotlib13-直方圖(histogram)詳解Python可視化|08-Palettable庫中顏色條Colormap(四)Python可視化|matplotlib07-自帶顏色條Colormap(三)

原創(chuàng)不易"點(diǎn)贊"、"在看"勵(lì)下唄

總結(jié)

以上是生活随笔為你收集整理的matplotlib 标签_Python可视化matplotlibamp;seborn14热图heatmap的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国内精品99 | 国产精品无码在线播放 | 欧美性受视频 | 黄色大片黄色大片 | 欧美日韩中 | 韩日在线视频 | 午夜在线一区二区三区 | 一区二区三区欧美日韩 | 可以看av的网站 | 九色视频自拍 | 欧美劲爆第一页 | 欧美日韩一 | 成年人黄色小视频 | 亚洲精久| 日韩高清国产一区在线 | 日日操天天 | 88国产精品视频一区二区三区 | 美女娇喘 | 国产亚洲精品久久久久久 | 日韩一级免费视频 | 中文字幕淫 | 99国产成人精品 | 91天天色 | 超碰老司机 | 四虎影院污| 国产字幕侵犯亲女 | 射在线 | 欧美精品久久久 | 理论视频在线观看 | 男同av在线观看一区二区三区 | 日本黄色特级片 | 久久久999精品 | 香蕉视频三级 | 邻家有女4完整版电影观看 欧美偷拍另类 | 国产a大片| 欧美高清精品一区二区 | 在线永久看片免费的视频 | 人人插人人看 | 最新国产一区 | 福利片网址 | 精品人妻码一区二区三区红楼视频 | 亚洲一区成人在线 | 中文字幕一区日韩 | 日本三级影院 | 久久精品天天中文字幕人妻 | 2023国产精品| 日韩在线视频你懂的 | 荔枝视频污 | 97se视频 | 中文字幕人妻伦伦 | 福利在线一区 | 国产高清一区在线观看 | 午夜啪视频 | 国产一级片在线播放 | 欧美激情成人网 | 特黄aaaaaaaaa毛片免 | 国产美女喷水视频 | 樱花电影最新免费观看国语版 | 天天色天天草 | 牛牛影视一区二区 | 日日干夜夜爱 | 欧美成人精品一区二区免费看片 | 欧美日韩一级黄色片 | 视频一区二区三区精品 | 久久久91视频 | 色香色香欲天天天影视综合网 | 美日韩免费视频 | 天堂网视频 | 中国一级黄色大片 | 色婷婷精品国产一区二区三区 | 少妇久久久久久被弄到高潮 | 1级av| 亚洲视频在线观看免费视频 | 人人搞人人爱 | 精品网站999| 午夜视频www | 国产乡下妇女做爰毛片 | 亚洲欧美不卡 | 黄色.com| 4438x全国最大成人网 | 中文字幕麻豆 | 九九爱精品 | 亚洲精品视频在线看 | 一级黄色大片免费观看 | 国产ts丝袜人妖系列视频 | 制服丝袜在线视频 | 欧美字幕 | 国产情侣一区二区 | 日本捏奶吃奶的视频 | 大尺度网站在线观看 | 亚洲四虎av | 亚洲第一成年人网站 | 欧美激情视频网 | 一级激情视频 | 四虎午夜影院 | 茄子av在线| 久久久国产精品久久久 | 中文字幕欲求不满 | 久久久久久麻豆 |