python Matplotlib数据可视化神器安装与基本应用

Matplotlib

Matplotlib 是一个非常强大的 Python 画图工具; 手中有很多数据, Matplotlib能帮你画出美丽的:

  • 线图;
  • 散点图;
  • 等高线图;
  • 条形图;
  • 柱状图;
  • 3D 图形,
  • 甚至是图形动画等等.

Linux 

打开 Terminal 窗口, 输入以下内容

# python 3+ 请复制以下在 terminal 中执行
$ sudo apt-get install python3-matplotlib

# python 2+ 请复制以下在 terminal 中执行
$ sudo apt-get install python-matplotlib

MacOS 

打开 Terminal 窗口, 输入以下内容

# python 3+ 请复制以下在 terminal 中执行
$ pip3 install matplotlib

# python 2+ 请复制以下在 terminal 中执行
$ pip install matplotlib

Windows 

Windows 的安装最麻烦. 我们一步步来:

Matplotlib 安装

    matplotlib-1.5.3-cp35-cp35m-win32.whl (md5)
    1.5.3 : plt版本
    cp35  : python 版本
    win32 : Windows 32位系统
    whl   : wheel 文件 
  • 用 CMD 找到这个 .whl 文件目录, 然后 pip 安装. 以 matplotlib-1.4.3-cp35-none-win32.whl文件为例:
$ cd python_work   # 用 cd 去到你下载的文件目录

# 如果是 python 3+ 版本, 像下面一样
python_work$ python -m pip3 install matplotlib-1.4.3-cp35-none-win32.whl
  • 如果安装不成功, 还有一种方法可以简便安装所有科学运算模块. 可以搜索一下 Anaconda python

基础应用

使用import导入模块matplotlib.pyplot,并简写成plt 使用import导入模块numpy,并简写成np

import matplotlib.pyplot as plt
import numpy as np

使用np.linspace定义x:范围是(-1,1);个数是50. 仿真一维数据组(x ,y)表示曲线1.

x = np.linspace(-1, 1, 50)
y = 2*x + 1

使用plt.figure定义一个图像窗口. 使用plt.plot画(x ,y)曲线. 使用plt.show显示图像.

plt.figure()
plt.plot(x, y)
plt.show()

基本用法

 

此外,还可以绘制很多不同的图案,就像下面几个例子:

曲线图

Matplotlib basic v.svg
 
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> a = np.linspace(0,10,100)
>>> b = np.exp(-a)
>>> plt.plot(a,b)
>>> plt.show()

直方图

Matplotlib histogram v.svg
 
>>> import matplotlib.pyplot as plt
>>> from numpy.random import normal,rand
>>> x = normal(size=200)
>>> plt.hist(x,bins=30)
>>> plt.show()

散点图

Matplotlib scatter v.svg
 
>>> import matplotlib.pyplot as plt
>>> from numpy.random import rand
>>> a = rand(100)
>>> b = rand(100)
>>> plt.scatter(a,b)
>>> plt.show()

3D 图

Matplotlib 3d v.svg
 
>>> from matplotlib import cm
>>> from mpl_toolkits.mplot3d import Axes3D
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> fig = plt.figure()
>>> ax = fig.gca(projection='3d')
>>> X = np.arange(-5, 5, 0.25)
>>> Y = np.arange(-5, 5, 0.25)
>>> X, Y = np.meshgrid(X, Y)
>>> R = np.sqrt(X**2 + Y**2)
>>> Z = np.sin(R)
>>> surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm)
>>> plt.show()

更多例子

 

posted on 2018-09-05 09:52  xmilt  阅读(955)  评论(0编辑  收藏  举报

导航