25

这是我的第一个 matplotlib 程序,很抱歉我的无知。

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

        test1 | test2
test3 |   1   |   0

test4 |   0   |   1

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

4

1 回答 1

76

也许是这样的:

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()

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

于 2012-04-26T15:42:22.593 回答