Необходимо использовать маркеры разброса matplotlib вне диаграммы, в метках для гистограммы

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

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

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

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

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

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

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

Спасибо за помогите!

scatter plot and bar graphs

2 ответов


С помощью латекс является довольно простым решением. Например:

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

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


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

http://www.mail-archive.com/matplotlib-users@lists.sourceforge.net/msg19442.html

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