python画图库matplotlib:初识

Matplotlib绘图教程
本文通过实例介绍了如何使用Python的Matplotlib库绘制多种类型的图表,包括曲线图、散点图、多figure展示、饼状图、直方图等,并展示了如何进行标注、设置坐标轴刻度等功能。

虽然不懂python,但是无不钦佩它功能的强大,各种丰富的库。。。

用pip安装matplotlib很简单(我的环境win10+python3.6):

python -m pip install matplotlib

画个一条曲线

import matplotlib.pyplot as plt
#program name: main.py
x1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
y1 = [0]*13

for i in range(1,13):
	y1[i] = x1[i]**2

label2 = ['1','2','3','4','5','6','7','8','9','10','11','11','12','13']
plt.title('y = x*x')
plt.rcParams['font.sans-serif']=['SimHei']#防止中文乱码
plt.xlabel('横向坐标')
plt.ylabel('平方')
plt.plot(x1, y1,'r', label='you guess')
plt.xticks(x1, label2, rotation=1)#设置轴坐标值
plt.legend(bbox_to_anchor=[0.5, 1])
plt.grid()
plt.show()

运行与结果(本文所有运行方式相同):

python main.py

画散点图

import numpy as np
import matplotlib.pyplot as plt

t = np.arange(0., 3., 0.3)

plt.plot(t, t, 'bs', t, t**1.2, 'ro', t, t**1.3, 'g^')
plt.grid()
plt.show()

画多个figure(像matlab一样)

#matplotlib + numpy
import numpy as np
import matplotlib.pyplot as plt
from pylab import *

x = np.arange(-5.0, 5.0, 0.02)
y1 = np.cos(x)

plt.figure(1)

plt.subplot(211)
plt.plot(x, y1)
plt.grid()

plt.subplot(223)
xlim(-2.5, 2.5)
ylim(-1, 1)
plt.plot(x, y1)
plt.grid()

plt.subplot(224)
xlim(0, 5)
ylim(-1, 1)
plt.plot(x, y1)
plt.grid()

plt.show()

画饼状图

import matplotlib.pyplot as plt

labels='中国','美国','日本','俄罗斯'

sizes=51,40,25,35

colors='gold','lightskyblue','yellowgreen','lightcoral'
explode=0.1,0.0,0.0,0.0
plt.rcParams['font.sans-serif']=['SimHei']
plt.pie(sizes,explode=explode,labels=labels,
		colors=colors,autopct='%1.1f%%',shadow=True,startangle=0)
plt.axis('equal')
plt.show()

画一个直方图

import numpy as np
import matplotlib.pyplot as plt

mu, sigma = 100, 15
x = mu + sigma * np.random.randn(100)

plt.subplot(211)
#直方图
plt.hist(x, 50, density=1, facecolor='b', alpha=0.75)
plt.rcParams['font.sans-serif']=['SimHei']
plt.xlabel('横坐标')
plt.ylabel('纵坐标')
plt.title('标题')
plt.text(80, .025, r'这是一个文本')#插入文本
#plt.axis([0, 10, 0, 0.03])
plt.grid(False)

plt.subplot(212)
plt.plot(abs(x))

plt.show()

标记某一点

import numpy as np
import matplotlib.pyplot as plt
 
t = np.arange(0.0, 3.14/4, 0.002)
s = np.tan(2*np.pi*t)
line, = plt.plot(t, s, 'b', lw=3)
 
plt.annotate('<0,0>', xy=(0, 0), xytext=(0.1, 8),
            arrowprops=dict(facecolor='red', shrink=0.0),)

plt.ylim(-20,20)
plt.show()

坐标轴刻度

from pylab import *

X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
C,S = np.cos(X), np.sin(X)

plot(X, C, color="blue", lw=1.0, ls="-")
plot(X, S, color="r", lw=2.0, ls="-")
 
xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
       [r'$-pi$', r'$-pi/2$', r'$0$', r'$+pi/2$', r'$+pi$'])
yticks([-1, 0, +1], [r'$-1$', r'$0$', r'$+1$'])
show()

图例legend

#from pylab import * #注释了与上面不变的代码,值显示添加图例修改部分
#X = np.linspace(-np.pi, np.pi, 256,endpoint=True)
#C,S = np.cos(X), np.sin(X)
plot(X, C, color="blue", lw=1.0, ls="-", label='cos')
plot(X, S, color="r", lw=2.0, ls="-",label='sin')
#xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
       [r'$-pi$', r'$-pi/2$', r'$0$', r'$+pi/2$', r'$+pi$'])
#yticks([-1, 0, +1], [r'$-1$', r'$0$', r'$+1$'])
legend(loc='upper left')
#show()

详细介绍请访问:http://python.jobbole.com/85106/

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值