我有一個散點圖,它繪製了來自兩個不同數據集的大量點。在某些區域,有大量的點,所以即使alpha值非常低(例如alpha = 0.1),也無法透視質量。但在這個alpha版本中,你幾乎看不到稀疏區域中的點。有沒有一種方法來限制疊加點的alpha值或以某種方式使背景在密集區域下可見,同時不會清除稀疏區域?散點圖對於點密集的區域,alpha仍然不透明
的代碼片段看起來是這樣的:
# Code to populate the datasets not included.
fig, ax = plt.subplots()
ax.scatter(x1, y1, s=12, color='red')
ax.scatter(x2, y2, s=12, color='blue', alpha=0.1)
# Plus code to do xlabels and such not included.
產生這樣的:
正如你可以看到,這是很難看到底部紅腿的界限,仍然讓頂部的藍色拳腳出局。
有什麼辦法可以產生這種效果嗎?
在此先感謝。
編輯
一個很好的建議似乎是使用而不是分散的hexbin。這看起來很有希望,但顏色仍然不好混合。例如,
ax.hexbin(x1, y1, cmap='Reds', mincnt=1, vmax=100)
ax.hexbin(x2, y2, cmap='Blues', mincnt=1, vmax=50, alpha=0.8, linewidths=0)
產量:
這將是非常好的,使那些藍色和紅色合併。也許每個像素可能有來自一個數據集的R值,以及來自另一個數據集的B值或其他?但它似乎不是hexbin中的一個選項。
編輯
應用Thomasillo的回答後:
謝謝,我認爲它看起來比原來的更好。
您可以考慮使用替代hexbin所示,[這個例子](http://matplotlib.org/examples/pylab_examples/hexbin_demo.html)。 – BrenBarn
@BrenBarn hexbin在這裏有用嗎?這是一個兩組密度。我也不明白你們聯繫的例子是否應該解決這個問題。 –
您可以使用兩個hexbins,就像您當前使用兩個散點一樣。如果你對兩個hexbins使用不同的顏色映射,並將兩個alpha設置爲一些非透明值,那麼你可以得到兩個在地方重疊的hexbins。我不認爲分散(即使是阿爾法)對於具有這種重疊的數據集來說是最好的選擇。 – BrenBarn