简单的用法,常用于数据分析。
如果你想要炫酷,请移步隔壁 javascript
先绘制一个底板
# 绘制一个底板
import matplotlib.pyplot as plt
plt.figure(figsize=(5,3),dpi=144)
plt.title('hello world')
plt.show()
一次性绘制多个图
方法一
# 绘制多个图:方法一
import matplotlib.pyplot as plt
fig,axes = plt.subplots(2,2)
t = np.arange(0.0,2.0,0.01)
s = np.sin(2 * np.pi * t ) + 1
axes[0,0].plot(t,s)
axes[0,0].set_title('hello 1')
s = np.random.randn(2,50)
axes[0,1].hist(s[0])
axes[1,0].scatter(s[0],s[1])
# 能保存为矢量图。
plt.savefig('figure.svg')
plt.show()
方法二
# 直接用subplot绘制要简单一些。
import matplotlib.pyplot as plt
fig = plt.figure()
axe = plt.subplot(2,2,1)
axe2 = plt.subplot(2,2,2)
axe3 = plt.subplot(2,2,3)
plt.show()
四种常见的图形
直方图、散点图、柱状图、折线图。
import matplotlib.pyplot as plt
import numpy as np
plt.figure(figsize=(6,4),dpi=144)
# 直方图
data = np.random.standard_normal(10001)
bins = 100
plt.subplot(2,2,1).hist(data,bins)
# 散点图
x = np.random.rand(20)
y = np.random.rand(20)
plt.subplot(2,2,2).scatter(x,y)
# 柱状图
axe3 = plt.subplot(2,2,3)
data_m = [40,60,120,180,20,200]
data_f = [20,100,150,30,20,50]
index = np.arange(6)
width = 0.2
axe3.bar(index-width/2,data_m,width,label='men')
axe3.bar(index+width/2,data_f,width,label='women')
axe3.set_xticks(index)
axe3.set_xticklabels(['a','b','c','d','e','f'])
# 折线图
axe4 = plt.subplot(2,2,4)
x = np.arange(0,10)
y = np.random.rand(10)
axe4.plot(x,y,'-',color='r')
plt.show()
三维图
# 3d 散点图
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
axe = Axes3D(plt.figure(figsize=(3,2),dpi=144))
N = 100
x = np.random.rand(N)
y = np.random.rand(N)
z = np.random.rand(N)
axe.scatter3D(x,y,z)
plt.show()