python中matplotlib绘制图形

简介:

matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。该包下面有很多对象,比如pylab,pyplot等等,pylab集成了pyplot和numpy两个模块,能够进行快速绘图。Pylab和pyplot(http://matplotlib.org/api/pyplot_api.html)都能够通过对象或者属性对图像进行操作。Pyplot下也有很多对象,如figure,Axes对象等等,对图像进行细节处理。下面通过一些简单和常用的例子进行操作。

  1. 通过pyplot画散点图,调用scatter函数,同时该函数也可以画不同大小点的散点图。例子如下:

# .*.coding : utf-8 .*.
import numpy as np
import matplotlib.pyplot as pltx = np.arange(0,20,2)y = np.linspace(0,20,10)
plt.figure()
plt.scatter(x,y,c='r',marker='*')
plt.xlabel('X')
plt.ylabel('Y')
plt.title('$X*Y$')
plt.show()

2.画曲线图,通过plot函数画曲线图,如下:

import numpy as np
import random
from matplotlib import pylab as pl
from matplotlib import pyplot as plt

#画一条曲线图
plt.figure(figsize=(8,6))   #设置图形的尺寸,单位为英尺
x = np.random.randn(10)*10
y = np.pi*np.sin(x) + 8
x1 = np.arange(0,10,1)
#lines = plt.plot(x,y)
plt.plot(x,y,label = '$np.pi*np.sin(x)+8$',color='red',linewidth = 2)plt.plot(x,y,'bo')
plt.title('Y=a*sin(x)+b')
plt.ylabel('Function-Y')
plt.xlabel('Var-X')
plt.legend()   #图形的右上角显示图形的标签,和上面的plt.plo(x,y,label='')有关
#plt.setp(lines,color = 'r',linewidth = 2.5)

plt.show()

3. 将图像画在多个轴上面,并在一个figure中。可以通过subplot,还有ubplot2grid等等方式均可实现。

import numpy as np
import matplotlib.pylab as plt'''将图形画在一个矩阵制定的表中,利用subplot,plot()中放有多个自变量和函数,画多坐标图'''def f(t):
    return np.exp(-t) * np.cos(2*np.pi*t)
t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)
plt.figure(1)
plt.subplot(211)  #subplot(numRows, numCols, plotNum),如:subplot(221)
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k')
plt.title('pylab first example',fontsize = 16)
plt.subplot(212)
plt.plot(t2, np.cos(2*np.pi*t2), 'r--')
plt.title('pylab second example',fontsize = 16)

plt.show()

4.      使用text将文本表现在图中,并对图像之间进行设置,坐标设置等。

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
#通过对象的形式文本作图
fig = plt.figure()
fig.suptitle('bold figure suptitle', fontsize=14, fontweight='bold')#figure的标题ax = fig.add_subplot(111)   #figure下的坐标图axfig.subplots_adjust(top=0.85)
ax.set_title('axes title')  #给ax设置标题
ax.set_xlabel('xlabel')     #给ax设置横坐标
ax.set_ylabel('ylabel')     #给ax设置纵坐标
ax.text(3, 8, 'boxed italics text in data coords', style='italic',
        bbox={'facecolor':'red', 'alpha':0.5, 'pad':10})
ax.text(2, 6, r'an equation: $E=mc^2$', fontsize=15)
ax.text(3, 2, unicode('unicode: Institut f\374r Festk\366rperphysik', 'latin-1'))
ax.text(0.95, 0.01, 'colored text in axes coords',
        verticalalignment='bottom', horizontalalignment='right',
        transform=ax.transAxes,
        color='green', fontsize=15)ax.plot([2], [1], 'o')      #ax画图,以及下面添加注释ax.annotate('annotate', xy=(2, 1), xytext=(3, 4),
            arrowprops=dict(facecolor='black', shrink=0.05))
ax.axis([0, 10, 0, 10]) #设置横-纵轴的刻度
plt.show()

5.  通过hist画直方图

import numpy as np
import matplotlib.pyplot as pltx = np.arange(0,1000,0.5)y = np.random.rand(2000)*10
n,bins,patches = plt.hist(y,50,normed=1,alpha=0.8)
plt.title('Hist of Y')
plt.xlabel('Smarts')
plt.ylabel('NormProbability')
plt.text(2,0.12,'$\mu=10,\\sigma=20$')
plt.grid(True)
plt.show()

6.  通过bar画条形图

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0,1000,0.5)
y = np.random.rand(2000)*10n,bins,patches = plt.hist(y,50,normed=1,alpha=0.8)plt.title('Hist of Y')
plt.xlabel('Smarts')
plt.ylabel('NormProbability')
plt.text(2,0.12,'$\mu=10,\\sigma=20$')
plt.grid(True)
plt.show()

7.      对图形中的重要点进行注释,采用annotate实现改功能。具体用法可以采用官方文档。如下:

# .*. coding : utf-8 .*.
import numpy as np
import matplotlib.pyplot as pltx = np.arange(-10,10,1)y = 2*(x**2)-5*x+np.pi
maxy = min(y)
maxyx = x[np.argmin(y)]
plt.figure()
plt.plot(x,y,'-',color='red',linewidth=2.5,label='$2*(x^2)-5*x+np.pi$')
plt.annotate('Max y at points',xy=(maxyx,maxy),xytext=(maxyx+1,maxy+10),
             arrowprops=dict(facecolor='black', shrink=0.01),fontsize=12)
#xy为注释的点,xytext注释点文本的位置
plt.xlabel('X')
plt.ylabel('Y')
plt.xlim(-11,11)
plt.title('plot of y=x^2')plt.show()

matplotlib官方文档中包含可很多画图的方法,如时间序列方面的处理,如:acorr;图像的处理,信号处理,数学公式等等。官方文档(http://matplotlib.org/py-modindex.html










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1576049,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
数据可视化 数据挖掘 API
Python数据可视化利器Matplotlib详解
本文将深入探讨Python中常用的数据可视化库Matplotlib,介绍其基本概念、常见绘图函数和实例应用。通过学习Matplotlib,读者可以掌握如何利用Python进行数据可视化,展示数据分析结果。
|
1月前
|
数据可视化 数据挖掘 Python
Python数据可视化:探索Matplotlib的强大功能
数据可视化在如今的数据分析和展示中扮演着至关重要的角色。本文将介绍Python中常用的数据可视化库Matplotlib,深入探讨其功能和应用,帮助读者更好地利用Matplotlib进行数据可视化。
|
1月前
|
数据可视化 数据处理 Python
Python数据可视化库Matplotlib的应用与优势探究
本文将深入探讨Python中强大的数据可视化库Matplotlib的应用与优势。通过介绍Matplotlib的基本概念和常用功能,结合具体案例展示其在数据分析和图表绘制中的灵活性和实用性,帮助读者更好地利用这一工具进行数据可视化。
|
1月前
|
机器学习/深度学习 数据可视化 数据处理
Python数据可视化:探索Matplotlib库的强大功能
本文将深入探讨Python中用于数据可视化的重要工具之一——Matplotlib库。通过介绍Matplotlib库的基本概念、常用功能和实际应用案例,帮助读者更好地了解如何利用Matplotlib创建各种吸引人的数据图表。
|
1月前
|
数据可视化 数据挖掘 Python
Python中的数据可视化利器Matplotlib详解
本文将深入探讨Python中一款强大的数据可视化工具——Matplotlib,介绍其基本用法、常见图表类型以及高级定制技巧,帮助读者更好地利用Matplotlib实现数据可视化需求。
|
8天前
|
数据可视化 数据挖掘 定位技术
Python 基于 Matplotlib 实现数据可视化(二)
Python 基于 Matplotlib 实现数据可视化(二)
21 0
|
9天前
|
数据可视化 数据挖掘 Python
Python中数据分析工具Matplotlib
【4月更文挑战第14天】Matplotlib是Python的数据可视化库,能生成多种图表,如折线图、柱状图等。以下是一个绘制简单折线图的代码示例: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.figure() plt.plot(x, y) plt.title('简单折线图') plt.xlabel('X轴') plt.ylabel('Y轴') plt.show() ```
13 1
|
1月前
|
数据可视化 数据挖掘 Python
Python中的数据可视化工具Matplotlib简介与实践
在本文中,我们将介绍Python中常用的数据可视化工具Matplotlib,包括其基本概念、常用功能以及实际应用。通过学习Matplotlib,读者可以更好地理解和运用数据可视化技术,提升数据分析与展示的能力。
|
1月前
|
数据可视化 数据挖掘 API
Python数据分析中的数据可视化:Matplotlib与Seaborn的比较
在Python数据分析领域,数据可视化是至关重要的一环。本文将深入探讨两大流行的数据可视化库Matplotlib与Seaborn的异同,帮助读者更好地选择适合自身需求的工具。
|
1月前
|
Python
Python函数之计算规则图形的面积
Python函数之计算规则图形的面积
15 0