अजगर सीबॉर्न मॉड्यूल मेटप्लोटलिब पर आधारित है, और एक बहुत अच्छा हीटमैप पैदा करता है।
नीचे सीबॉर्न के साथ एक कार्यान्वयन है, जिसे ipython / jupyter नोटबुक के लिए डिज़ाइन किया गया है।
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
# import the data directly into a pandas dataframe
nba = pd.read_csv("http://datasets.flowingdata.com/ppg2008.csv", index_col='Name ')
# remove index title
nba.index.name = ""
# normalize data columns
nba_norm = (nba - nba.mean()) / (nba.max() - nba.min())
# relabel columns
labels = ['Games', 'Minutes', 'Points', 'Field goals made', 'Field goal attempts', 'Field goal percentage', 'Free throws made',
'Free throws attempts', 'Free throws percentage','Three-pointers made', 'Three-point attempt', 'Three-point percentage',
'Offensive rebounds', 'Defensive rebounds', 'Total rebounds', 'Assists', 'Steals', 'Blocks', 'Turnover', 'Personal foul']
nba_norm.columns = labels
# set appropriate font and dpi
sns.set(font_scale=1.2)
sns.set_style({"savefig.dpi": 100})
# plot it out
ax = sns.heatmap(nba_norm, cmap=plt.cm.Blues, linewidths=.1)
# set the x-axis labels on the top
ax.xaxis.tick_top()
# rotate the x-axis labels
plt.xticks(rotation=90)
# get figure (usually obtained via "fig,ax=plt.subplots()" with matplotlib)
fig = ax.get_figure()
# specify dimensions and save
fig.set_size_inches(15, 20)
fig.savefig("nba.png")
आउटपुट इस तरह दिखता है:
मैंने matplotlib ब्लूज़ कलर मैप का उपयोग किया है, लेकिन व्यक्तिगत रूप से डिफ़ॉल्ट रंग काफी सुंदर लगते हैं। मैं x-axe लेबल्स को घुमाने के लिए matplotlib का उपयोग करता था, क्योंकि मुझे सीबोरिन सिंटैक्स नहीं मिल रहा था। जैसा कि grexor द्वारा उल्लेख किया गया है, यह परीक्षण और त्रुटि के द्वारा आयामों (fig.set_size_inches) को निर्दिष्ट करने के लिए आवश्यक था, जो मुझे थोड़ा निराशाजनक लगा।
जैसा कि पॉल एच ने नोट किया है, आप आसानी से हीट मैप्स (एनोट = ट्रू) के मूल्यों को जोड़ सकते हैं, लेकिन इस मामले में मुझे नहीं लगा कि इसने आंकड़े में सुधार किया है। कई कोड स्निपेट जोएलोट्ज़ द्वारा उत्कृष्ट उत्तर से लिए गए थे।