Я боролся с этим некоторое время и не могу заставить его работать. Я читаю файл по частям и рисую данные из него, и я хотел бы «анимировать» его, обновляя точечную диаграмму для каждого фрагмента в цикле for
(а также адаптируя его к живому потоку данных).
Так что что-то вроде этого уродливого примера работает для одного сюжета:
x = [1, 2, 3, 4]
y = [4, 3, 2, 1]
alpha = [0.2, 0.3, 0.8, 1.0]
c = np.asarray([(0, 0, 1, a) for a in alpha])
s = scatter(x, y, marker='o', color=c, edgecolors=c)
Но как обновить график, не вызывая повторно s.remove()
и scatter()
? Предполагается, что совершенно неинтуитивно названные s.set_array
и s.set_offsets
обновляют цвета и позиции x и y, но я не могу понять, как их использовать с типом данных x, y, alpha, которые у меня есть выше.
(Кроме того, есть ли лучший способ сделать альфу на приведенном выше графике?)
set_array
работает, когда вы используете палитру для определения цвета маркеров, а не когда вы устанавливаете цвета вручную. Другое предположение, которое делают эти функции, заключается в том, что количество производителей не меняется (iirc). - person tacaswell   schedule 01.06.2014scatter(x, y, c=alpha, cmap=cdict4, linewidth=0)
просто избавьтесь от края. (отредактировано, потому что я неправильно запомнил kwargs) - person tacaswell   schedule 04.06.2014n = mpl.colors.Normalize(vmin = min(speedsList), vmax = max(speedsList)); m = mpl.cm.ScalarMappable(norm=n, cmap=mpl.cm.afmhot); scat.set_facecolor(m.to_rgba(speedsList)); scat.set_clim(vmin=min(speedsList), vmax=max(speedsList));
где scat — это точечная диаграмма, а speedsList — это данные, из которых можно получить информацию о цвете. - person Magic_Matt_Man   schedule 24.10.2014