Python matplotlib中的散点图
这是我的第一个matplotlib程序,很抱歉我的无知 我有两个字符串数组。比如说,Python matplotlib中的散点图,python,matplotlib,scatter-plot,Python,Matplotlib,Scatter Plot,这是我的第一个matplotlib程序,很抱歉我的无知 我有两个字符串数组。比如说,A=['test1','test2']和B=['test3','test4']。 如果A和B元素之间存在任何相关性,则其corr值将设置为1 test1 | test2 test3 | 1 | 0 test4 | 0 | 1 现在,我想画一个散点图,其中X轴将是a的元素,Y轴将是B的元素,如果相关值是1,它将被标记在散点图中。怎么做?可能是这样的: import mat
A=['test1','test2']
和B=['test3','test4']
。
如果A
和B
元素之间存在任何相关性,则其corr值将设置为1
test1 | test2
test3 | 1 | 0
test4 | 0 | 1
现在,我想画一个散点图,其中X轴将是
a
的元素,Y轴将是B
的元素,如果相关值是1
,它将被标记在散点图中。怎么做?可能是这样的:
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
,并且您需要使用轴标签。另外,这感觉像是一种变通方法,可能有(可能是)一种直接的方法来做这件事。我已经回答了你的问题,但又读了一遍,我不确定你是否理解了它。A和B的元素真的是字符串吗?如何测试字符串的相关性?如果它们是数值,那么您将只获得一个相关性度量。从您的示例来看,“test1”和“test2”似乎列出了。但我不清楚你们到底想要什么样的散点图。我仍然会留下我的答案,以防它有用,但如果你澄清一下,它会有所帮助。嗨,是的,A和B的元素是字符串,它们实际上代表两个文件名。我根据一些逻辑从另一个程序生成了相关值。@bray-那么你想绘制一个相关值的布尔矩阵?