plt.show()如何知道要显示什么?

时间:2018-01-23 10:02:44

标签: python python-3.x python-2.7 matplotlib

我的问题不是关于matplotlib的详细内容,而是一般编程和问题,我正在寻找关于在python或matplotlib核心中实现这一点的机制的答案。

我们假设我有一个使用代码的散点图:

import matplotlib.pyplot as plt
plt.scatter(a,b)
plt.show()

我想知道这句话是如何处理的?
python(或matplotlib?)如何知道要绘制的内容以及从何处获取数据? 这些陈述如何由翻译处理?

1 个答案:

答案 0 :(得分:1)

也许我终于看到了这个问题的重点。当然,我们无法在这里解释pyplot,因为这太复杂了,需要一个完整的教程(顺便说一句,确实存在)。但我们可以看一下pyplot如何以非常简单的方式作为模块工作。

让我们创建myplot,即最终的控制台绘图库。 ; - )

模块myplot可能如下所示。它有两个函数scattershow以及两个变量figuresplotplot会将我们的坐标系存储到绘图中。 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() 

创建输出:

^            
|  *         
|   **       
|     *      
| *     *    
|            
+----------->