繁体   English   中英

python中具有明确定义的坐标的棋盘颜色图

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM