使用Python进行数学图表绘制
2016-10-31 17:34
621 查看
学习目标:
使用Python进行数学图表绘制
使用模块:
matplotlib:
是Python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。
安装:
pip install matplotlib
概念:
两段小代码:
代码1:
import matplotlib.pyplot as plt
for i,g in enumerate("rgbyck"):
plt.subplot(321+i,axisbg=g)
plt.show()
结果
代码2:
plt.plot([1,1.5,2,3])
plt.ylabel('some number')
plt.show()
结果
matplotlib实际上是一套面向对象的绘图库,它所绘制的图表中的每个绘图元素,例如线条Line2D、文字Text、刻度等在内存中都有一个对象与之对应。
为了方便快速绘图matplotlib通过pyplot模块提供了一套和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。我们只需要调用pyplot模块所提供的函数就可以实现快速绘图以及设置图表的各种细节。pyplot模块虽然用法简单,但不适合在较大的应用程序中使用。
为了将面向对象的绘图库包装成只使用函数的调用接口,pyplot模块的内部保存了当前图表以及当前子图等信息。当前的图表和子图可以使用plt.gcf()和plt.gca()获得,分别表示"Get Current Figure"和"Get Current Axes"。在pyplot模块中,许多函数都是对当前的Figure或Axes对象进行处理
figure:图形 axes:坐标轴
在这里我们必须强调几个numpy中我们常用方法
首先numpy是我们Python当中一个强大的数学方法库,它给我们做数学运算提供了很好的支持
1、numpy.arange()
三个参数
第一个参数是起始位置
第二个参数是结束位置
第三个参数是步长,默认为1
2、numpy.linspace()
三个参数
第一个是起始位置
第二个是结束位置
第三个是元素的个数,默认为50
3、numpy.sin()、cos()、log()
这些大家应该有影响但是注意的是他们可以处理一个也可以批量处理
1、开始2D图的绘制
1、设置坐标区间
example 1
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-5,5,0.01)
y = x**3
#plt.axit([-6,6,-10,10])
plt.xticks(range(-6,6)) #x轴区间设置
plt.yticks(range(-150,150,10)) #y轴区间设置
plt.plot(x,y)
plt.show()
example 2
import numpy as np
import matplotlib.pyplot as plt
x = range(5)
y = [10,18,24,16,28]
plt.xticks(range(0,6),["A","B","C","D","E",]) #设置刻度
plt.yticks(range(10,30))
plt.plot(x,y)
plt.show()
example 3
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x = np.arange(-5.0, 5.0, 0.02)
y1 = np.sin(x)
plt.figure(1)
plt.subplot(211)
plt.plot(x, y1)
plt.subplot(212)
xlim(-2.5, 2.5)#设置x轴范围
ylim(-1, 1)#设置y轴范围
plt.plot(x, y1)
plt.show()
2、设置网格线
example
x = range(5)
y = [10,18,24,16,28]
plt.xticks(range(0,6),["A","B","C","D","E",])
plt.yticks(range(10,30))
plt.plot(x,y)
plt.grid(True) #当grid为True的时候就是开启网格线
plt.show()
3、设置多条线
example
import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0., 5., 0.2)
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')#X,Y,样式
plt.show()
4、子图问题
plt.figure()
example
import matplotlib.pyplot as plt
plt.figure(1) # 第一张图
plt.subplot(311) # 第一张图中的第一张子图
plt.plot([1,2,3])
plt.subplot(312) # 第一张图中的第二张子图
plt.plot([4,5,6])
plt.subplot(313) # 第一张图中的第三张子图
plt.plot([7,8,9])
plt.figure(2) # 第二张图
plt.plot([4,5,6]) # 默认创建子图subplot(111)
plt.figure(1) # 切换到figure 1 ; 子图subplot(212)仍旧是当前图
plt.subplot(311) # 令子图subplot(211)成为figure1的当前图
plt.title('Easy as 1,2,3') # 添加subplot 211 的标题
plt.show()
5、直方图
example 1
import numpy as np
import matplotlib.pyplot as plt
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)
plt.show()
example 2
import numpy as np
import matplotlib.pyplot as plt
data = np.random.randint(1, 11, 5)
x = np.arange(len(data))
plt.plot(x, data, color = 'r')
plt.bar(x, data, alpha = .1, color = 'g')
plt.show()
6、标题
example
import numpy as np
import matplotlib.pyplot as plt
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)
plt.title('Histogram of IQ') #添加标题
plt.show()
7、注释
example
import numpy as np
import matplotlib.pyplot as plt
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)
plt.xlabel('Smarts') #设置x轴标签
plt.ylabel('Probability') #设置y轴标签
plt.title('Histogram of IQ') #添加标题
#添加文字
plt.text(60, .025, r'$\mu=100,\ \sigma=15$')
plt.grid(True)
plt.show()
9、设置汉语
example
import numpy
as npimport
matplotlib.pyplot as pltimport
matplotlib as mplmpl.rcParams['font.family']
= 'sans-serif'mpl.rcParams['font.sans-serif']
= [u'SimHei']
10、饼状图
example
import numpy as np
import matplotlib.pyplot as plt
data = [1,2,3,4,5,6]
x = np.arange(len(data))
plt.pie(data, explode = [0,0,.1, 0, 0,0])#很有趣
plt.show()
help(plt.pie)
使用Python进行数学图表绘制
使用模块:
matplotlib:
是Python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。
安装:
pip install matplotlib
概念:
两段小代码:
代码1:
import matplotlib.pyplot as plt
for i,g in enumerate("rgbyck"):
plt.subplot(321+i,axisbg=g)
plt.show()
结果
代码2:
plt.plot([1,1.5,2,3])
plt.ylabel('some number')
plt.show()
结果
matplotlib实际上是一套面向对象的绘图库,它所绘制的图表中的每个绘图元素,例如线条Line2D、文字Text、刻度等在内存中都有一个对象与之对应。
为了方便快速绘图matplotlib通过pyplot模块提供了一套和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。我们只需要调用pyplot模块所提供的函数就可以实现快速绘图以及设置图表的各种细节。pyplot模块虽然用法简单,但不适合在较大的应用程序中使用。
为了将面向对象的绘图库包装成只使用函数的调用接口,pyplot模块的内部保存了当前图表以及当前子图等信息。当前的图表和子图可以使用plt.gcf()和plt.gca()获得,分别表示"Get Current Figure"和"Get Current Axes"。在pyplot模块中,许多函数都是对当前的Figure或Axes对象进行处理
figure:图形 axes:坐标轴
在这里我们必须强调几个numpy中我们常用方法
首先numpy是我们Python当中一个强大的数学方法库,它给我们做数学运算提供了很好的支持
1、numpy.arange()
三个参数
第一个参数是起始位置
第二个参数是结束位置
第三个参数是步长,默认为1
2、numpy.linspace()
三个参数
第一个是起始位置
第二个是结束位置
第三个是元素的个数,默认为50
3、numpy.sin()、cos()、log()
这些大家应该有影响但是注意的是他们可以处理一个也可以批量处理
1、开始2D图的绘制
1、设置坐标区间
example 1
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-5,5,0.01)
y = x**3
#plt.axit([-6,6,-10,10])
plt.xticks(range(-6,6)) #x轴区间设置
plt.yticks(range(-150,150,10)) #y轴区间设置
plt.plot(x,y)
plt.show()
example 2
import numpy as np
import matplotlib.pyplot as plt
x = range(5)
y = [10,18,24,16,28]
plt.xticks(range(0,6),["A","B","C","D","E",]) #设置刻度
plt.yticks(range(10,30))
plt.plot(x,y)
plt.show()
example 3
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x = np.arange(-5.0, 5.0, 0.02)
y1 = np.sin(x)
plt.figure(1)
plt.subplot(211)
plt.plot(x, y1)
plt.subplot(212)
xlim(-2.5, 2.5)#设置x轴范围
ylim(-1, 1)#设置y轴范围
plt.plot(x, y1)
plt.show()
2、设置网格线
example
x = range(5)
y = [10,18,24,16,28]
plt.xticks(range(0,6),["A","B","C","D","E",])
plt.yticks(range(10,30))
plt.plot(x,y)
plt.grid(True) #当grid为True的时候就是开启网格线
plt.show()
3、设置多条线
example
import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0., 5., 0.2)
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')#X,Y,样式
plt.show()
4、子图问题
plt.figure()
example
import matplotlib.pyplot as plt
plt.figure(1) # 第一张图
plt.subplot(311) # 第一张图中的第一张子图
plt.plot([1,2,3])
plt.subplot(312) # 第一张图中的第二张子图
plt.plot([4,5,6])
plt.subplot(313) # 第一张图中的第三张子图
plt.plot([7,8,9])
plt.figure(2) # 第二张图
plt.plot([4,5,6]) # 默认创建子图subplot(111)
plt.figure(1) # 切换到figure 1 ; 子图subplot(212)仍旧是当前图
plt.subplot(311) # 令子图subplot(211)成为figure1的当前图
plt.title('Easy as 1,2,3') # 添加subplot 211 的标题
plt.show()
5、直方图
example 1
import numpy as np
import matplotlib.pyplot as plt
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)
plt.show()
example 2
import numpy as np
import matplotlib.pyplot as plt
data = np.random.randint(1, 11, 5)
x = np.arange(len(data))
plt.plot(x, data, color = 'r')
plt.bar(x, data, alpha = .1, color = 'g')
plt.show()
6、标题
example
import numpy as np
import matplotlib.pyplot as plt
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)
plt.title('Histogram of IQ') #添加标题
plt.show()
7、注释
example
import numpy as np
import matplotlib.pyplot as plt
mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75)
plt.xlabel('Smarts') #设置x轴标签
plt.ylabel('Probability') #设置y轴标签
plt.title('Histogram of IQ') #添加标题
#添加文字
plt.text(60, .025, r'$\mu=100,\ \sigma=15$')
plt.grid(True)
plt.show()
9、设置汉语
example
import numpy
as npimport
matplotlib.pyplot as pltimport
matplotlib as mplmpl.rcParams['font.family']
= 'sans-serif'mpl.rcParams['font.sans-serif']
= [u'SimHei']
10、饼状图
example
import numpy as np
import matplotlib.pyplot as plt
data = [1,2,3,4,5,6]
x = np.arange(len(data))
plt.pie(data, explode = [0,0,.1, 0, 0,0])#很有趣
plt.show()
help(plt.pie)
相关文章推荐
- python3.6 使用pycha进行图表绘制(由于pycha长期未更新无法直接兼容python3.6,需做部分修改)
- python使用pygal进行绘制数据图表和监控图表
- python使用pygal进行绘制数据图表和监控图表
- python: 使用matplotlib的pyplot绘制图表
- 使用Python绘制图表实例
- 使用python matplotlib绘制高级图表
- Python数据可视化:使用pyecharts和snapshot绘制精美图表
- windows7下使用64位Python编程、科学计算、绘制图表
- python爬虫爬取指定用户微博图片及内容,并进行微博分类及使用习惯分析,生成可视化图表
- Python使用plotly绘制数据图表的方法
- Python:使用matplotlib绘制图表
- 使用python绘制常用的图表
- python 使用numpy matplotlib绘制图表
- Python:使用matplotlib绘制图表
- Python:使用pycha快速绘制办公常用图二(使用样式定制个性化图表)
- Python:使用pycha快速绘制办公常用图二(使用样式定制个性化图表)
- Python学习21:Python中函数的用法,使用函数进行简单的数学运算
- 使用Python进行层次聚类/主成分分析绘图观察结果/绘制热图
- ride中使用 python的math库 进行数学计算
- 使用Python绘制图表大全总结