[英]Checkerboard color plot in python with well-defined co-ordinates
我有类似格式的数据
f = [
((0, 2), 519.52876712328771),
((0, 3), 514.56307692307701),
((0, 4), 564.86538461538464),
((1, 1), 641.70774647887322),
((1, 2), 537.97177419354841),
((1, 3), 529.85214285714301),
((1, 4), 467.36338028169018)
]
我想绘制一个框大小为1的棋盘色图。 位置或(x,y)
坐标将由f[i][0]
给出,颜色将由f[i][1]
。 可以看到,棋盘图不会填满整个图像。
我如何使用matplotlib在python中做到这一点?
例:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
f = [((0, 2), 519.52876712328771), ((0, 3), 514.56307692307701), ((0, 4), 564.86538461538464), ((1, 1), 641.70774647887322), ((1, 2), 537.97177419354841), ((1, 3), 529.85214285714301), ((1, 4), 467.36338028169018)]
x = []
y = []
value = ['red', 'blue', 'green', 'brown', 'black', 'aqua', 'violet']
for i in range(0, len(f)):
j = f[i][0][0]
k = f[i][0][1]
x.append(j)
y.append(k)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.axis([0, max(y), 0, max(y)])
for axis in [ax.xaxis, ax.yaxis]:
axis.set_minor_locator(MultipleLocator(1))
axis.set_ticks(np.arange(max(y)) + 0.5)
axis.set_ticklabels(range(max(y)))
for i in range(0, len(f)):
rect = plt.Rectangle((x[i],y[i]), 1, 1, color=value[i])
ax.add_patch(rect)
ax.grid(which='minor')
plt.show()
输出:
只需使用我们自己的颜色即可。 希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.