Самый простой способ построить значения как символы в точечной диаграмме? - PullRequest
3 голосов
/ 02 июня 2010

В ответ на мой более ранний вопрос, касающийся исправления цветового пространства для рассеянных изображений 4D данных, Tom10 предложил отобразить значения в виде символов, чтобы перепроверить мои данные.Отличная идеяЯ запустил несколько подобных демонстраций в прошлом, но я не могу найти, насколько я помню, демонстрацию довольно простой.

Итак, как проще всего представить числовые значения в виде символа вграфик рассеяния вместо «о», например?Tom10 предложил plt.txt (x, y, value) - и это реализация, использованная в ряде примеров.Однако мне интересно, есть ли простой способ оценить «ценность» из моего массива чисел?Можно просто сказать: str (valuearray)?

Вам нужен цикл для оценки значений для построения графиков, как это предлагается в демонстрационном разделе matplotlib для 3D-диаграмм разброса текста ?

Их пример производит:

альтернативный текст http://matplotlib.sourceforge.net/_images/text3d_demo.png

Однако они делают нечто довольно сложное в оценке местоположений, а также в изменении направления текста на основе данных.Итак, есть ли симпатичный способ построения данных x, y, C (где C - это значение, часто используемое в качестве цвета в данных графика, но вместо этого я хочу сделать символ)?

Опять же, ядумаю, у нас есть справедливый ответ на этот вопрос - мне просто интересно, есть ли более простой способ?

1 Ответ

2 голосов
/ 06 июня 2010

Самый простой способ, который я видел, это:

for x, y, val in zip(x_array, y_array, val_array):
    plt.text(x, y, val)

Кроме того, кстати, вы предложили использовать str (valarray), и это, как вы могли заметить, не работает. Чтобы преобразовать массив чисел в последовательность строк, вы можете использовать

valarray.astype(str)

чтобы получить массив numy, или

[str(v) for v in valarray]

чтобы получить список Python. Но даже при использовании valarray в качестве правильной последовательности строк plt.text не будет перебирать свои входные данные.

...