我的问题不是关于matplotlib的详细内容,而是一般编程和问题,我正在寻找关于在python或matplotlib核心中实现这一点的机制的答案。
我们假设我有一个使用代码的散点图:
import matplotlib.pyplot as plt
plt.scatter(a,b)
plt.show()
我想知道这句话是如何处理的?
python(或matplotlib?)如何知道要绘制的内容以及从何处获取数据?
这些陈述如何由翻译处理?
答案 0 :(得分:1)
也许我终于看到了这个问题的重点。当然,我们无法在这里解释pyplot,因为这太复杂了,需要一个完整的教程(顺便说一句,确实存在)。但我们可以看一下pyplot如何以非常简单的方式作为模块工作。
让我们创建myplot
,即最终的控制台绘图库。 ; - )
模块myplot可能如下所示。它有两个函数scatter
和show
以及两个变量figures
和plot
。 plot
会将我们的坐标系存储到绘图中。 figures
将存储我们创建的数字。
plot = """
^
|
|
|
|
|
+----------->"""
figures = []
def scatter(X,Y):
thisplot = list(plot[:])
for x,y in zip(X,Y):
thisplot[1+14*(6-y)+x] = "*"
thisplot = "".join(thisplot)
figures.append(thisplot)
def show():
for fig in figures:
print(fig)
调用scatter
会从plot
创建一个新数字并将其存储在figures
列表中。调用show
将获取该列表中的所有数字,并显示它们(在控制台中打印它们)。
因此,使用myplot
看起来与上面的示例完全相同。
import myplot as mlt
mlt.scatter([2,3,4,5,6,8],[2,5,4,4,3,2])
mlt.show()
创建输出:
^
| *
| **
| *
| * *
|
+----------->