Python中最简单的绘制简单图形的代码是什么(比Matlab更简单)?

9

如果我想在 Matlab 中绘制从 0 到 9 的 y=x^2 图形,可以执行以下操作:

a = [0:1:10]
b = a.^2
plot(a,b)

使用Python,我可以像下面这样做:
import matplotlib.pyplot as plt
import numpy as np

a=[x for x in xrange(10)]
b=np.square(a)
plt.plot(a,b)
plt.show()

与我相信的Python代码更简单的想法相反,这需要比Matlab更多的行数。(我猜想Python试图使事情变得轻量级,所以我们需要在实际需要某些东西时导入它们,因此需要更多的行数...)我能让上述Python代码更简单(我的意思是更短吗)?

编辑: 我知道这并不重要,当涉及到处理时间时是毫无意义的,但我只是好奇代码可以变得多短。


2
在我看来,简单的代码并不一定意味着代码更短。就你的情况而言,如果使用Python编写代码比Matlab更长,我也不会感到惊讶,因为Matlab是专门为此功能设计的,而Python则不是。 - Moon Cheesez
你的代码之所以更长,唯一的原因是因为你需要导入库。你只需要在想要绘图的每个文件中执行一次即可。担心这些行并没有太大用处。除此之外,你的代码比Matlab多了一行。(除此之外,在像这样的琐碎示例中,计算行数并不是衡量简单性的好方法。) - BrenBarn
是的,我明白你的意思并完全同意。我已经添加到问题中了 :) - Chan Kim
这是一个合理的问题:指出比样板“python”更简洁的方法,并询问python是否可以做类似的事情。 - WestCoastProjects
1个回答

10

这个稍微简单一些。

import matplotlib.pyplot as plt

X = range(10)
plt.plot(X, [x*x for x in X])
plt.show()

但是请记住,Python是一种通用的编程语言,因此需要比单纯的图表/数学工具更多的工作。

主要的麻烦在于导入库以帮助进行图表绘制和数字计算,而这对于matlab(一个围绕这些问题设计的工具)来说是隐含的。

然而,这些代码只需要运行一次:它们不是一个因素,只是可忽略的加法常数,在稍微严谨一点的例子中甚至可以忽略不计。


是的,我完全理解。我只是好奇它能有多短。 - Chan Kim
在Python中进行import并不是一件神奇的事情:它总是有点繁琐。 - WestCoastProjects
对于散点图,请将plt.plot()替换为plt.scatter()。 - nda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接