我根據df表創建了pcolor圖:
import numpy as np
import pandas as pd
rng = np.random.default_rng()
df = pd.DataFrame(rng. integers(1, 32, size=(100, 3), columns=list('xyw')
sample_pvt = df.pivot_table(index='x', columns='y')
sample_pvt.columns = sample_pvt.columns.droplevel(0)
fig, axs = plt.subplots(figsize=(10,10)
orig_map=plt.cm.get_cmap('viridis')
reversed_map = orig_map.reversed()
plt.pcolor(sample_pvt, cmap = reversed_map)
plt.xticks(np.range(len(sample_pvt.columns)) 0.5, sample_pvt.columns)
plt.yticks(np.range(len(sample_pvt.index)) 0.5, sample_pvt.index)
cbar = plt.colorbar()
plt.show()
結果:
是否有可能人為地將圖表的x軸擴大到總是40個欄位,而將y軸擴大到60個欄位,并將這些欄位留空?
注意:有時我的資料有不完整的軸范圍,如下圖:
是否有可能對資料/圖表進行轉換,使X軸始終顯示1至40的數值,而Y軸顯示1至60的數值?
uj5u.com熱心網友回復:
你可以在繪制之前.reindex,這樣你繪制的DataFrame總是有你想要的行和列。
sample_pvt = sample_pvt.reindex(range(1, 61) 。) reindex(range(1, 41), axis=1)
# Then your plotting code.
fig, axs = plt.subplots(figsize=(10, 15)
orig_map=plt.cm.get_cmap('viridis')
reversed_map = orig_map.reversed()
plt.pcolor(sample_pvt, cmap = reversed_map)
plt.xticks(np.range(len(sample_pvt.columns)) 0.5, sample_pvt.columns)
plt.yticks(np.range(len(sample_pvt.index)) 0.5, sample_pvt.index)
cbar = plt.colorbar()
plt.show()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/324000.html
標籤:
上一篇:按True的序列分組


