Matplotlib 視覺化經常遇到重疊註釋的問題,導致圖表混亂且難以解釋。本文提供了一個全面的解決方案來應對這項挑戰。
當多個註釋共享同一螢幕空間時,就會出現重疊註釋,從而造成視覺混亂。在提供的程式碼中,資料點的註解文字往往會重疊,尤其是在圖形的較密集區域中。
為了避免重疊註釋,由 Phlya 編寫的 adjustmentText 庫,提供了一個簡單而有效的解決方案。該庫會自動調整註釋的位置,以最大限度地減少重疊,同時保持可讀性。
import matplotlib.pyplot as plt
from adjustText import adjust_text
# ... (code to generate the data and plot remain the same as before) ...
plt.xlabel("Proportional Euclidean Distance")
plt.ylabel("Percentage Timewindows Attended")
plt.title("Test plot")
texts = [x for (x,y,z) in together]
eucs = [y for (x,y,z) in together]
covers = [z for (x,y,z) in together]
p1 = plt.plot(eucs,covers,color="black", alpha=0.5)
texts = []
for x, y, s in zip(eucs, covers, text):
texts.append(plt.text(x, y, s))
adjust_text(texts, only_move={'points':'y', 'texts':'y'}, arrowprops=dict(arrowstyle="->", color='r', lw=0.5))
plt.show()
匯入 matplotlib.pyplot 作為 plt
從調整文字匯入調整文字
# ...(產生資料和繪圖的程式碼與先前相同)...
plt.xlabel("比例歐氏距離")
plt.ylabel("參加時間窗口的百分比")
plt.title("測試圖")
texts = [x 代表 (x,y,z) 在一起]
eucs = [y 代表 (x,y,z) 在一起]
覆蓋 = [z 代表 (x,y,z) 在一起]
p1 = plt.plot(eucs,封面,顏色=「黑色」, alpha=0.5)
文本=[]
對於 zip 中的 x、y、s(eucs、封面、文字):
texts.append(plt.text(x, y, s))
adjust_text(texts, only_move={'points':'y', 'texts':'y'}, arrowprops=dict(arrowstyle="->", color='r', lw=0.5))
plt.show()自訂文字位置adjustText 提供各種自訂選項來微調註解的位置。例如,它允許您控制哪些元素是可移動的(only_move 參數)、註釋的對齊方式以及文字物件之間的排斥強度。 透過試驗這些參數,您可以實現最佳的文字放置:最大限度地提高 Matplotlib 圖表的清晰度和視覺吸引力,而無需擔心註釋重疊。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3