这是我的第一个matplotlib程序,对不起我的无知。
我有两个字符串数组。比如,A = ['test1','test2']
和B = ['test3','test4']
。
如果A
和B
元素之间存在任何相关性,则其corr值将设置为1
。
test1 | test2
test3 | 1 | 0
test4 | 0 | 1
现在,我想绘制一个散点图,其中我的X轴将是A
的元素,Y轴将是B
的元素,如果相关值是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
,您可以使用轴标签。这也感觉像是一种解决方法,并且可能(可能是)直接的方法来做到这一点。