我正在繪制從資料框加載的某些模型的性能。我正在使用 Seaborn 執行此操作。但是,X 軸上值的順序取決于選擇模型的順序。例如,在下圖中,首先選擇模型 PLD_level_6,然后選擇模型 PLD_level_5.3:
在此處輸入影像描述
如您所見,X 軸上的值首先從 v17 開始直到 v19,然后從 v13 開始直到 v16。當然,人們希望 X 軸上的值按時間順序排列(即從 v13 到 v19)。如果先選擇模型 PLD_level_5.3,然后選擇模型 PLD_level_6,情況確實如此,如下所示:
在此處輸入影像描述
發生這種情況的原因是因為在 v13、v14、v15 和 v16 中不存在 PLD_level_6 的資料。有沒有辦法在 X 軸上強制 v13、v14、v15、v16、v17、v18、v19 的固定順序與缺失資料無關?
這是我用于繪圖的代碼片段:
if (number_of_metrics ==1):
g = sns.lineplot(x="VERSION", y=metrics1[0], hue="FULL_MODEL_ID", data = v_model_results, ax=axes[0, 0])
box = g.get_position()
g.set_position([box.x0, box.y0, box.width * 0.85, box.height])
g.legend(loc='lower right', bbox_to_anchor=(0.8, 1.2), ncol=1)
if (number_of_metrics > 1):
g = sns.lineplot(x="VERSION", y=metrics1[0], hue="FULL_MODEL_ID", data = v_model_results, ax=axes[0, 0])
box = g.get_position()
g.set_position([box.x0, box.y0, box.width * 0.85, box.height])
g.legend(loc='lower right', bbox_to_anchor=(0.8, 1.5), ncol=1)
for metric in metrics1[1:]:
index = metrics1.index(metric)
sns.lineplot(x="VERSION", y=metric, hue="FULL_MODEL_ID", data = v_model_results, ax=axes[index, 0], legend=False)
axes[0,0].set_title(f"First set of models: {cell_line1}-{conc1}")
plt.tight_layout()
uj5u.com熱心網友回復:
是的,為您的x變數提供一個Categoricaldtype,其中包含您希望按您想要的順序出現的所有類別。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/454516.html
標籤:Python 熊猫 matplotlib 海运 轴
上一篇:單堆積條形圖Matplotlib
