基于Python+Matplotlib繪制漸變色扇形圖與等高線圖
漸變色扇形圖
使用 python - matplotlib 顏色地圖plt.cm模塊兒,來繪制出顏色漸變、更加好看的扇形圖。也稱彩虹圖,但是也不限于彩虹圖,可以選擇的顏色地圖(colormap)有:
Paired, autumn, rainbow, gray, spring, Darks。
下邊以顏色地圖rainbow為例(彩虹圖),寫出以下代碼,并展示各種顏色樣式下的圖像效果。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
# 字體使用楷體
plt.rcParams['font.sans-serif'] = ['STKAITI']
plt.rcParams['axes.unicode_minus'] = False
# 準(zhǔn)備數(shù)據(jù)
shapes = ['安徽省', '云南省', '福建省', '河南省', '遼寧省',
'重慶', '湖南省', '四川省', '北京', '上海', '廣西壯族自治區(qū)', '河北省',
'浙江省', '江蘇省', '湖北省', '山東省', '廣東省']
values = [842, 866, 1187, 1405, 1495, 1620, 1717,
2313, 2378, 3070, 4332, 5841, 6482, 7785, 9358, 9818, 20254]
s = pd.Series(values, index=shapes)
labels = s.index
sizes = s.values
fig, ax = plt.subplots(figsize=(8, 8), facecolor='#cc00ff')
# rainbow
# 這里的len(sizes)是選擇的顏色的個(gè)數(shù),也是繪制餅圖的數(shù)據(jù)個(gè)數(shù),
# 此處參數(shù)通常寫為np.arange(len(sizes))/len(sizes)形式,不用糾結(jié)太多關(guān)于其用法。
colors = cm.rainbow(np.arange(len(sizes))/len(sizes))
patches, texts, autotexts = ax.pie(sizes, labels=labels, autopct='%1.0f%%',
startangle=180,
colors=colors,
pctdistance=0.8,
textprops={'fontsize': 15, 'color': '#8B1A1A'},
)
ax.set_title('部分地區(qū)某指標(biāo)占比圖', loc='center', fontsize=25, color='blue')
plt.show()
圖像效果如下:

除此之外,也可以調(diào)用cm模塊的get_cmap()方法來完成??梢詫υ摲椒ㄓ兴私猓ㄐ∴庇X得上邊展示的方法是更為方便的)。
以Paired顏色地圖 為例:

以顏色地圖autumn為例:

以顏色地圖gray為例:

以顏色地圖spring為例:

等高線
繪制等高線圖使用的是matplotlib.pyplot的contourf()方法。
該函數(shù)語法如下:
plt.contourf(X, Y, f(X,Y))
其中 X和Y都是二維數(shù)組。(meshgrid()方法作用后的 網(wǎng)格化 形式)
f(X,Y)指的是對X、和Y使用f()函數(shù)進(jìn)行計(jì)算的結(jié)果,計(jì)算的結(jié)果作為該坐標(biāo)點(diǎn)的高度。
一段可以參考的示例代碼如下:
import numpy as np
import matplotlib.pyplot as plt
# 計(jì)算x,y坐標(biāo)對應(yīng)的高度值
def fun(x, y):
return (1-x/2+x**2+y**3) * np.exp(-x**2-y**2)
# 設(shè)置個(gè)背景色
plt.figure(facecolor='#66ff33')
n = 256
x = np.linspace(-3, 3, n)
y = np.linspace(-3, 3, n)
# 把x,y數(shù)據(jù)轉(zhuǎn)換為二維數(shù)據(jù)(網(wǎng)格化)
X, Y = np.meshgrid(x, y)
# 填充等高線
plt.contourf(X, Y, fun(X, Y))
# 顯示圖表
plt.show()
其中fun(x, y)是計(jì)算高度的公式,可以根據(jù)我們的需求自由定制。
繪制出的圖像效果呈現(xiàn)如下:

到此這篇關(guān)于基于Python+Matplotlib繪制漸變色扇形圖與等高線圖的文章就介紹到這了,更多相關(guān)Python Matplotlib扇形圖 等高線圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python利用多線程枚舉實(shí)現(xiàn)獲取wifi信息
這篇文章主要為大家詳細(xì)介紹了Python如何利用枚舉字典的方式來實(shí)現(xiàn)獲取wifi信息,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-12-12
Python實(shí)現(xiàn)一個(gè)服務(wù)器監(jiān)聽多個(gè)客戶端請求
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)一個(gè)服務(wù)器監(jiān)聽多個(gè)客戶端請求,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
十一個(gè)案例帶你吃透Python函數(shù)參數(shù)
這篇文章主要通過十一個(gè)案例帶大家一起了解一下Python中的函數(shù)參數(shù),文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2022-08-08
Python定時(shí)任務(wù)APScheduler的實(shí)例實(shí)例詳解
APScheduler 支持三種調(diào)度任務(wù):固定時(shí)間間隔,固定時(shí)間點(diǎn)(日期),Linux 下的 Crontab 命令。這篇文章主要介紹了Python定時(shí)任務(wù)APScheduler的使用,需要的朋友可以參考下2019-07-07
python通過函數(shù)名調(diào)用函數(shù)的幾種場景
這篇文章主要介紹了python通過函數(shù)名調(diào)用函數(shù)的幾種場景,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-09-09

