rec*_*ner 2 python numpy matplotlib
我的孩子正在尝试学习他的乘法表,我正在考虑使用matplotlib创建一个部分填充的乘法表供他练习.棘手的部分是使水平轴和垂直轴的文本在抽动标记之间排列,而不是在抽动标记上居中.
关于如何开始这个的任何想法?
提前致谢.
正如大家已经说过的那样,matplotlib实际上并不是最好的工具......如果你真的想以编程方式做到这一点,那么生成HTML真的会更容易.
话虽如此,它就是一个很好的例子.
调整轴标签位置的最简单方法是用文本对象替换它们,或者只是将它们保持原样并打开次要网格.(标签对象有一个set_position方法,但它实际上并没有改变它们的位置.我不确定这是故意还是错误...)我将在这里使用后一种技术......
import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
import numpy as np
maxnum = 13
numfilled = 40
x = np.random.randint(0, maxnum, size=numfilled)
y = np.random.randint(0, maxnum, size=numfilled)
z = x * y
fig, ax = plt.subplots()
for X,Y,Z in zip(x,y,z):
ax.text(X+0.5,Y+0.5,str(Z), ha='center', va='center')
ax.axis([0, maxnum, 0, maxnum])
for axis in [ax.xaxis, ax.yaxis]:
axis.set_minor_locator(MultipleLocator(1))
axis.set_ticks(np.arange(maxnum) + 0.5)
axis.set_ticklabels(range(maxnum))
ax.grid(which='minor')
ax.xaxis.set_ticks_position('top')
plt.show()
Run Code Online (Sandbox Code Playgroud)
