如果python中有公共数据,如何绘制矩阵
我试图建立一个二维矩阵使用2个csv文件和矩阵应该显示绿色,如果两个文件都有一个基因,红色,如果不存在。我编写了一个python代码来比较这两个文件,如果存在或不存在,它将分别打印1或0。这就是代码:如果python中有公共数据,如何绘制矩阵,python,matplotlib,matrix,Python,Matplotlib,Matrix,我试图建立一个二维矩阵使用2个csv文件和矩阵应该显示绿色,如果两个文件都有一个基因,红色,如果不存在。我编写了一个python代码来比较这两个文件,如果存在或不存在,它将分别打印1或0。这就是代码: import csv with open('test1.csv','r') as input_file: reader = csv.reader(input_file) row_str1 = [] for row in reader: row_str1.ap
import csv
with open('test1.csv','r') as input_file:
reader = csv.reader(input_file)
row_str1 = []
for row in reader:
row_str1.append(row[1])
print row_str1
with open('test2.csv','r') as input_file:
reader = csv.reader(input_file)
row_str2 = []
for row in reader:
row_str2.append(row[1])
print row_str2
for const in row_str1:
for var in row_str2:
if const == var:
print "1"
else:
print "0"
我有没有办法在2D矩阵中表示1和0,它应该看起来像,但应该是绿色而不是蓝色,红色而不是白色
编辑:这是我尝试过的代码,但是我的所有值都变绿了,我需要集成前面的代码和这段代码来获得我的最终脚本
import matplotlib.pyplot as plt
from matplotlib import colors
import numpy as np
data = np.array([[1, 1, 2, 1, 1, 2, 1, 2, 1, 1], [1, 1, 2, 1, 1, 2, 1, 2, 1, 1], [1, 1, 2, 1, 1, 2, 1, 2, 1, 1], [1, 1, 2, 1, 1, 2, 1, 2, 1, 1], [1, 1, 2, 1, 1, 2, 1, 2, 1, 1], [1, 1, 2, 1, 1, 2, 1, 2, 1, 1], [1, 1, 2, 1, 1, 2, 1, 2, 1, 1]])
cmap = colors.ListedColormap(['green', 'red'])
bounds = [0, 10, 20]
norm = colors.BoundaryNorm(bounds, cmap.N)
fig, ax = plt.subplots()
ax.imshow(data, cmap=cmap, norm=norm)
ax.grid(which ='major', axis = 'both', linestyle = '-', color = 'k', linewidth = 2)
ax.set_xticks(np.arange(-.5, 10, 1));
ax.set_yticks(np.arange(-.5, 10, 1));
plt.show()
我得到的结果是
我试图改变边界,但无法将所有颜色保留在一起。有没有一种方法可以让所有颜色的盒子都充满活力
请帮忙。
谢谢您确实需要更改边界以匹配您的数据。此外,您还需要让边界规范与您想要的颜色数量相匹配
import matplotlib.pyplot as plt
from matplotlib import colors
import numpy as np
data = np.array([[1, 1, 2, 1, 1, 2, 1, 2, 1, 1], [1, 1, 2, 1, 1, 2, 1, 2, 1, 1],
[1, 1, 2, 1, 1, 2, 1, 2, 1, 1], [1, 1, 2, 1, 1, 2, 1, 2, 1, 1],
[1, 1, 2, 1, 1, 2, 1, 2, 1, 1], [1, 1, 2, 1, 1, 2, 1, 2, 1, 1],
[1, 1, 2, 1, 1, 2, 1, 2, 1, 1]])
cmap = colors.ListedColormap(['green', 'red'])
bounds = [0.5, 1.5, 2.5]
norm = colors.BoundaryNorm(bounds, len(bounds)-1)
fig, ax = plt.subplots()
im = ax.imshow(data, cmap=cmap, norm=norm)
ax.grid(which ='major', axis = 'both', linestyle = '-', color = 'k', linewidth = 2)
ax.set_xticks(np.arange(-.5, 10, 1));
ax.set_yticks(np.arange(-.5, 10, 1));
fig.colorbar(im, ticks=[1,2])
plt.show()
您已经做了一些工作,了解如何确定一个文件中的哪些元素也在第二个文件中。干得好!但是你对绘图部分什么也没做。你试过什么?什么不起作用?这不是一个代码编写服务,展示您的工作并提出具体问题,请参见。对此我感到非常抱歉,我没有包括我遇到问题的代码,如果需要更多的格式化,请让我知道,非常感谢