我認爲您需要爲pcolormesh
上的每個單元格創建一個plt.text
對象。這個循環應該做你想做的。可能有矢量化的方式來做到這一點,但至少這是有效的。
for ii,i in enumerate(df.index):
for jj,j in enumerate(df.keys()):
plt.text(ii+0.5,jj+0.5,df[i][j])
這是一個完整的腳本:
import pandas as pd
import matplotlib.pyplot as plt
plt.viridis()
df = pd.DataFrame({
'abc':{'abc':1.0,'def':0.2,'xyz':0.5},
'def':{'abc':0.2,'def':1.0,'xyz':0.3},
'xyz':{'abc':0.5,'def':0.3,'xyz':1.0}})
plt.pcolormesh(df.values)
for ii,i in enumerate(df.index):
for jj,j in enumerate(df.keys()):
plt.text(ii+0.5,jj+0.5,df[i][j],
ha='center',va='center',
size=20,color='w')
plt.show()
來源
2016-02-15 14:26:28
tom
十分感謝... – darkpool