基于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
# 準備數(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)是選擇的顏色的個數(shù),也是繪制餅圖的數(shù)據(jù)個數(shù),
# 此處參數(shù)通常寫為np.arange(len(sizes))/len(sizes)形式,不用糾結太多關于其用法。
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ū)某指標占比圖', 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ù)進行計算的結果,計算的結果作為該坐標點的高度。
一段可以參考的示例代碼如下:
import numpy as np
import matplotlib.pyplot as plt
# 計算x,y坐標對應的高度值
def fun(x, y):
return (1-x/2+x**2+y**3) * np.exp(-x**2-y**2)
# 設置個背景色
plt.figure(facecolor='#66ff33')
n = 256
x = np.linspace(-3, 3, n)
y = np.linspace(-3, 3, n)
# 把x,y數(shù)據(jù)轉換為二維數(shù)據(jù)(網(wǎng)格化)
X, Y = np.meshgrid(x, y)
# 填充等高線
plt.contourf(X, Y, fun(X, Y))
# 顯示圖表
plt.show()
其中fun(x, y)是計算高度的公式,可以根據(jù)我們的需求自由定制。
繪制出的圖像效果呈現(xiàn)如下:

到此這篇關于基于Python+Matplotlib繪制漸變色扇形圖與等高線圖的文章就介紹到這了,更多相關Python Matplotlib扇形圖 等高線圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Pygame游戲開發(fā)之太空射擊實戰(zhàn)添加圖形篇
相信大多數(shù)8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經(jīng)典好玩的一款了,今天我們來自己動手實現(xiàn)它,在編寫學習中回顧過往展望未來,在本課中,我們將討論如何在游戲中使用預先繪制的圖形2022-08-08
Python?Opencv中獲取卷積核的實現(xiàn)代碼
這篇文章主要介紹了Python?Opencv中獲取卷積核的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07
python調(diào)用帶空格的windows?cmd命令問題及連續(xù)運行多個命令方式
這篇文章主要介紹了python調(diào)用帶空格的windows?cmd命令問題及連續(xù)運行多個命令方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
使用Python開發(fā)Telegram?Bot的流程步驟
Telegram?Bot?是一種可以與用戶交互的機器人應用程序,通過?Telegram?的?Bot?API?與服務器通信,它可以用來處理消息、執(zhí)行命令、提供服務,如通知提醒、數(shù)據(jù)查詢和自動化任務等,本文給大家介紹了如何用?Python?開發(fā)一個?Telegram?Bot,需要的朋友可以參考下2025-01-01

