簡體   English   中英

如何修復Matplotlib和Seaborn熱圖圖?

[英]How to fix matplotlib and seaborn heatmap plot?

我已經使用Seaborn和Matplotlib繪制了一個熱圖。

在Matplotlib中,刻度線的名稱還可以,但是我不喜歡出現的白線。 如何消除白線?

在seaborn中,the的名稱是錯誤的,但我喜歡這種情節。 如何將刻度移動到每個正方形的中心? 如何確定刻度線的名稱? 最佳分數為0.857,參數為:'clf__C':100000.0,'clf__gamma':1e-05

但是seaborn使用:'clf__C':1e-05,'clf__gamma':1e-05

Ranking of best parameters
RandomizedSearchCV took 5.58 seconds for 25 candidates parameter  settings.
Model with rank: 1
Mean validation score: 0.857 (std: 0.036)
Parameters: {'clf__C': 100000.0, 'clf__gamma': 1.0000000000000001e-05}

Model with rank: 2
Mean validation score: 0.821 (std: 0.048)
Parameters: {'clf__C': 10000000000.0, 'clf__gamma': 1.0000000000000001e-05}

Model with rank: 3
Mean validation score: 0.720 (std: 0.065)
Parameters: {'clf__C': 100000.0, 'clf__gamma': 1.0}

Model with rank: 3
Mean validation score: 0.720 (std: 0.065)
Parameters: {'clf__C': 10000000000.0, 'clf__gamma': 1.0}


MY CODE FOR SEABORN
# You can use this to generate a (5,5) array:
# scores = np.random.rand(5,5)


plt.figure(figsize=(8, 6))
scores = inner_rs.cv_results_['mean_test_score'].reshape(len(C_range),len(gamma_range))
ax = sns.heatmap(scores, annot=True)

plt.xlabel('gamma')
plt.ylabel('C')

plt.xticks(np.arange(len(gamma_range)), gamma_range, rotation=45)
plt.yticks(np.arange(len(C_range)), C_range)
plt.title('Validation accuracy')
plt.show()


MY CODE FOR MATPLOTLIB

from matplotlib.colors import Normalize

class MidpointNormalize(Normalize):
    def __init__(self, vmin=None, vmax=None, midpoint=None, clip=False):
        self.midpoint = midpoint
        Normalize.__init__(self, vmin, vmax, clip)

    def __call__(self, value, clip=None):
        x, y = [self.vmin, self.midpoint, self.vmax], [0, 0.5, 1]
        return np.ma.masked_array(np.interp(value, x, y))


 plt.figure(figsize=(8, 6))
scores = inner_rs.cv_results_['mean_test_score'].reshape(len(C_range),len(gamma_range))
plt.imshow(scores, interpolation='nearest', cmap=plt.cm.hot,

       norm=MidpointNormalize(vmin=0.2, midpoint=0.92))
plt.xlabel('gamma')
plt.ylabel('C')
plt.colorbar()
plt.xticks(np.arange(len(gamma_range)), gamma_range, rotation=45)
plt.yticks(np.arange(len(C_range)), C_range)
plt.title('Validation accuracy')
plt.grid(False)
plt.show()

曼波樂寶 Matplotlib

海星 海生

不幸的是,您沒有顯示matplotlib圖的任何代碼。 但是擺脫網格的解決方案是使用plt.grid(False)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM