matplotlib中的散点图

时间:2012-04-26 15:30:18

标签: python matplotlib scatter-plot

这是我的第一个matplotlib程序,对不起我的无知。

我有两个字符串数组。比如,A = ['test1','test2']B = ['test3','test4']。 如果AB元素之间存在任何相关性,则其corr值将设置为1

        test1 | test2
test3 |   1   |   0

test4 |   0   |   1

现在,我想绘制一个散点图,其中我的X轴将是A的元素,Y轴将是B的元素,如果相关值是1,那么'将在分散的情节中标记。怎么做?

1 个答案:

答案 0 :(得分:72)

也许是这样的:

import matplotlib.pyplot
import pylab

x = [1,2,3,4]
y = [3,4,8,6]

matplotlib.pyplot.scatter(x,y)

matplotlib.pyplot.show()

编辑:

让我看看我现在是否正确理解你:

你有:

       test1 | test2 | test3
test3 |   1   |   0  |  1

test4 |   0   |   1  |  0

test5 |   1   |   1  |  0

现在,您希望在散点图中表示上述值,以便值1以点表示。

假设您的结果存储在二维列表中:

results = [[1, 0, 1], [0, 1, 0], [1, 1, 0]]

我们希望将它们转换为两个变量,以便我们能够绘制它们。

我相信这段代码会为您提供所需内容:

import matplotlib
import pylab


results = [[1, 0, 1], [0, 1, 0], [1, 1, 0]]

x = []
y = []

for ind_1, sublist in enumerate(results):
    for ind_2, ele in enumerate(sublist):
        if ele == 1:
            x.append(ind_1)
            y.append(ind_2)       


matplotlib.pyplot.scatter(x,y)

matplotlib.pyplot.show()

请注意,我确实需要导入pylab,您可以使用轴标签。这也感觉像是一种解决方法,并且可能(可能是)直接的方法来做到这一点。