需要在图表外部使用matplotlib分散标记,在条形图的标签中

时间:2011-12-01 07:19:00

标签: python charts matplotlib

我有一个散点图,使用六个不同的符号来绘制点。例如,下面的代码用向下的三角形符号绘制一个点:

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

每个符号代表不同类别的对象。我需要在不同的图表中引用散点图中使用的符号,条形图解释散点图中每个聚类中每个类的比例。

如何让条形图的标签使用用于散点图标记的符号?正如您在下图中所看到的,每个条形下的标签应该与图表中的标记相对应,但它们不会,因为我不知道如何在散点图的上下文之外召唤标记。相反,它们只显示标记的代码字母(例如v而不是真正的三角形)。

忽略百分比的乱码线全部重叠的事实,这是我将要解决的另一个问题。

如果符号是我在某处可以找到的UTF-8符号,我可以手动将符号添加到条形图图例中,但我无法找到每个标记可能是哪个字符的确切规范。 / p>

我也在考虑使用带有文字UTF-8字符的.text(),而不是.scatter(),但是即使我选择带有fontproperties的Unicode字体,许多符号也不会呈现(显示为正方形),所以我坚持这种方法。

感谢您的帮助!

scatter plot and bar graphs

2 个答案:

答案 0 :(得分:3)

使用Latex是一个相当简单的解决方案。例如:

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

如果你需要帮助找出符号的名称,this是一个很棒的小网站,它允许你绘制你想要的符号,它将输出LaTex名称。

答案 1 :(得分:0)

看起来使用Unicode / LaTeX文本是最好的方法,根据这个:

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

我会在计算出来时添加更多细节。