Необходимо использовать маркеры разброса matplotlib вне графика, в метках для гистограммы - PullRequest
6 голосов
/ 01 декабря 2011

У меня точечная диаграмма, которая использует шесть разных символов для построения точек.Например, приведенный ниже код отображает точку с направленным вниз треугольным символом:

my_axis.scatter([x], [y], marker='v')

Каждый символ представляет отдельный класс объекта.Мне нужно сделать ссылку на символы, используемые на диаграмме рассеяния на другой диаграмме, гистограмму, которая объясняет пропорции каждого класса в каждом кластере на диаграмме рассеяния.

Как я могу иметь метки длягистограммы используют символы, используемые для маркеров точечной диаграммы?Как вы можете видеть на изображении ниже, метки под каждой полосой должны соответствовать маркерам на графике, но это не так, потому что я не знаю, как вызывать маркеры вне контекста графика рассеяния.Вместо этого они просто показывают кодовую букву для маркера (например, v вместо реального треугольника).

Игнорируйте тот факт, что искаженная линия процентов полностью перекрывается, это отдельная проблема, которую я исправлю.

Я бы хорошо добавил вручную символы в легенду гистограммы, если бы они были символами UTF-8, которые я мог где-то найти, но я не смог найти точную спецификацию, для какого символа мог бы быть каждый маркер.

Я также смотрю на использование .text () с буквальными символами UTF-8 вместо .scatter (), но многие символы не будут отображаться (отображаются в виде квадратов), даже когда я выбираю шрифт Unicode ссвойства шрифта, так что я застрял на этом подходе.

Спасибо за помощь!

scatter plot and bar graphs

Ответы [ 2 ]

3 голосов
/ 01 декабря 2011

Использование Латекс - довольно простое решение. Например:

from matplotlib import rc
rc('text', usetex=True)
plt.xticks(ind+width/2., ("$\lozenge$", "$\square$", "$\plus$", "o", "$\bigtriangledown$") )

И если вам нужна помощь в определении имен символов, , это - отличный маленький веб-сайт, который позволяет вам рисовать нужный символ и выводить имена LaTex.

0 голосов
/ 01 декабря 2011

Похоже, использование Unicode / LaTeX-текста - это лучший способ для продолжения, согласно этому:.html

Я добавлю больше деталей по мере их выяснения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...