零基础学编程012:画出复利曲线图

通过学习《零基础学编程011:复利数据表问题》,我们已经可以输出365行的《复利数据表》:

(1+0.01) ^ 1 = 1.01 (1+0.01) ^ 2 = 1.02 (1+0.01) ^ 3 = 1.03 ... ... (1+0.01) ^ 364 = 37.41 (1+0.01) ^ 365 = 37.78

但能否用Python画出像下图这样的复利曲线图?

由于我也是从头开始学Python,不过我不是零基础,而是学过了N种其它的编程语言,我只是特意没有去看Python入门书籍,想尝试着能否通过搜索和阅读来解决这个问题。

1)用谷歌搜索

因为曲线图、条形图等等在英文里都叫graph,所以搜索的关键词就选python draw graph。

看到两种主要答案,点进去快速浏览了一下,发现plotly是一个商业包,有免费受限版和商业版;而matplotlib也非常有名,相关资料非常丰富,用户群非常大,就选后者matplotlib了。

2)安装matplotlib

搜到matplotlib的官网:http://matplotlib.org,由于没有仔细地阅读安装说明,直接运行了下面两行命令:

python -m pip install -U pip setuptools
python -m pip install matplotlib

在黑窗口cmd.exe中给出了大量提示后,以安装失败告终,好像是一些依赖库无法安装。

返回去重新读这一段在Windows平台上安装的说明:

If you don’t already have Python installed, we recommend using one of the scipy-stack compatible Python distributions such as WinPython, Python(x,y), Enthought Canopy, or Continuum Anaconda, which have matplotlib and many of its dependencies, plus other useful packages, preinstalled.

这里提到的WinPython等几种预安装包中已经包含了大量可用的库或模块,直接安装它们就行。可惜在下载WinPython的200多M的安装文件时,网络不争气,还不支持断点续传,结果半个小时也没有下载下来。在缓慢的下载过程中,我又试了一些其它办法,踩过了不少坑,这里全略过。

可行的办法:直接到 http://winpython.github.io 官网去下载WinPython即可,有许多版本可用,我最终用的是3.5.2.3Qt5这个版本。请根据自己的机器是32位还是64位,选择相应的版本。比如:32位的安装包名称是:WinPython-32bit-3.5.2.3Qt5.exe

安装过程非常简单,设定一个安装目录,我设的是C:\WinPython-32bit-3.5.2.3Qt5,然后一直按下一步即可。

另外还有一个20M的WinPython 3.5.2.3 Zero精简版本,需要联网运行命令来安装matplotlib,也可以成功,这里不介绍了。

3)先画数学函数图

通过matplotlib官网上的相关链接找到一篇教程:

http://www.labri.fr/perso/nrougier/teaching/matplotlib/

运行C:\WinPython-32bit-3.5.2.3Qt5目录中的 IDLEX (Python GUI).exe,这个集成环境比以前的Python IDLE功能好像要强一点,输入以下代码:

import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(-np.pi, np.pi, 200)
Y = np.sin(X)
plt.plot(X,Y)
plt.show()

正弦曲线图出现了,只用6行语句,是不是很兴奋?

4)修改2行画出复利曲线图

由于有JAVA语言和R语言的基础,所以很容易猜出来np.linspace应该是生成出一组x坐标,Python中的**符号在其它语言中都有相应的power()函数,所以把上面的代码简单修改一下(加粗的地方):

import numpy as np
import matplotlib.pyplot as plt
X = np.linspace(1, 365, 365)
Y = np.power(1.01, X)
plt.plot(X, Y)
plt.show()

果然,简洁、清爽的复利曲线图真就画出来了。

具体原理以后再琢磨,先小结一下:

1)下载WinPython软件包,找那个200多M的,安装完成后,matplotlib及其它一些库就全部装好了,这些是绘图时都要用到的,这种安装方法最简捷。尽管还有其它各种安装包和复杂的安装过程,但新手最好就别试了,先把图画出来再说。

2)在WinPython中的集成环境叫IDLEX,比IDLE多了字母X

3)输入6行代码,可以画出正统曲线图

4)照猫画虎,修改2行语句,简单的复利曲线图完成!编程是不是很easy?

--- END ---

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-01-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

学习Vim的四周计划

1022
来自专栏程序员互动联盟

【专业技术】google浏览器的构建原理

编者按: 我们知道GYP是google的构建系统,为了熟悉他,我可没少走弯路, 我们知道cmake是这么工作的: cmake CMakeLists.txt -...

34412
来自专栏张戈的专栏

10个超有趣的Linux命令

本文展示了 10 个有趣的 Linux 动态命令,这些命令和实用功能无关,仅供娱乐!看完此文,你会对 Linux 有个全新的认识,谁说 IT 男就没有屌丝娱乐的...

2746
来自专栏iOSDevLog

iTerm2 科学上网

673
来自专栏北京马哥教育

Arch Linux的正确使用方法

谈起我的 Linux 学习之路,时间其实并不长。但是我却花了相对很少的时间,已经能达到把 Linux 当作自己的桌面系统的程度了。 Ubuntu 的体验令我有点...

3107
来自专栏计算机视觉战队

NVIDIA DIGITS(非常好用的一个框架)

我也忘了在哪里看过几篇类似的文章,为了让更多朋友知道这个好工具,我今天也作为一名合格的搬运工,希望大家努力传播正能量,和大家共同进步!谢谢! NVIDIA为...

3485
来自专栏美丽应用

在Volumio中使用命令行网易云音乐

802
来自专栏北京马哥教育

动画演示9个超有趣的Linux命令

1385
来自专栏bboysoul

linux 下office软件推荐

最近要写毕业设计,很坑爹的是毕业设计一定要用office软件,都不知道为什么不能用markdown,学校真的像个婊子,在这破学校没有学到什么东西,还他妈的天天立...

692
来自专栏申龙斌的程序人生

零基础学编程016:Python IDLE的代码编辑器

Python IDLE是Python的集成开发和学习环境,而WinPython集成更多的开发工具包,比如在《零基础学编程012:画出复利曲线图》提到的numpy...

2575

扫描关注云+社区