在散点图中将值绘制为符号的最简单方法是什么?

时间:2010-06-02 04:19:42

标签: numpy scipy matplotlib scatter-plot

在回答我之前关于修复4D数据散点图像的色彩空间的问题时,Tom10建议将值绘制为符号,以便仔细检查我的数据。一个好主意。我过去经历过一些类似的演示,但我不能为我的生活找到我记得很简单的演示。

那么,将数值绘制为散点图中的符号而不是“o”的最简单方法是什么? Tom10建议使用plt.txt(x,y,value) - 这是许多示例中使用的实现。然而,我想知道是否有一种简单的方法可以从我的数字数组中评估“价值”?可以简单地说:str(valuearray)?

您是否需要循环来评估绘图的值,如3D text scatter plots的matplotlib演示部分所示?

他们的例子产生:

alt text http://matplotlib.sourceforge.net/_images/text3d_demo.png

但是,他们在评估位置以及根据数据更改文本方向方面做了相当复杂的事情。那么,是否有一种可爱的方式来绘制x,y,C数据(其中C是一个值,通常作为绘图数据中的颜色 - 但我希望制作符号)?

同样,我认为我们对此有一个公平的答案 - 我只是想知道是否有更简单的方法?

1 个答案:

答案 0 :(得分:2)

我见过最简单的方法是:

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

另外,顺便说一句,你建议使用str(valarray),这个,你可能已经注意到它不起作用。要将数字数组转换为字符串序列,您可以使用

valarray.astype(str)

得到一个numpy数组,或者,

[str(v) for v in valarray]

获取Python列表。但即使将valarray作为正确的字符串序列,plt.text也不会迭代它的输入。

相关问题