Я строю график рассеяния со следующей частью:
cm = plt.cm.get_cmap('RdYlBu')
a = axes([.65, .6, .2, .2], axisbg='none')
sc=plt.scatter(x, y, c=z,s=500, marker='s',cmap=cm)
plt.colorbar(sc)
title('Density')
Данные z иногда оказываются очень близкими к однородным, т. е. 1,99, 2,01, 2,03, 1,98 и т. д. Это приводит к цветовому графику с другим значением z. Как я могу установить их все на 2, например, таким образом, чтобы цветовая карта была плоской?
вот та же проблема, что и с gnuplot, и я получил подсказку, которая решила проблему:
установить точность gnuplot для определенного столбца
Спасибо!
numpy.round
. Вы просто хотите округлить значения около 2? Например.[1.99, 2.01, 5.01]
--›[2.0, 2.0, 5.01]
Или вы хотите, чтобы все было округлено? (если вы хотите, чтобы все было округлено, просто используйтеc=np.round(z)
) - person Joe Kington   schedule 17.03.2014cbar = plt.colorbar(sc); cbar.set_label('2')
. Однако, похоже, вам будет лучше пропуститьnumpy.round
и вместо этого выполнитьplt.scatter(..., vmin=0, vamx=4)
, чтобы установить минимум и максимум цветовой полосы. Предположительно, вы сравниваете его с другим набором данных? - person Joe Kington   schedule 17.03.2014