matplotlib进行相关绘图操作
基本图绘制
基本图绘制不用考虑太多,能够进行参数变量修改即可,关键是找到各个参数的意义。
饼状图
import matplotlib.pyplot as plt
labels = 'Frogs', 'Hogs' ,'Dogs' ,'Logs'
sizes = [15, 30, 45, 10] #列表,用于规定所占百分比
explode = (0, 0, 0, 0) #设置哪一块进行一个突出显示
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow= False,startangle=90)
#第一个参数,表示所占百分比,第二个参数,部分突出情况,第四个参数,表示百分比保留小数情况,第五个参数为是否要阴影,第六个参数应该是旋转
plt.show()
柱状图
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(0) #随机种子,进行随机数固定
mu, sigma = 100, 20 # 均值和标准差
a = np.random.normal(mu, sigma, size=100)#按照均值和标准差进行数据生成?
plt.hist(a, 20, normed=1, histtype='stepfilled', facecolor='b', alpha=0.75) # 第二个参数bin:直方图的个数
plt.title('Histogram')#标题
plt.show()
折线图
import matplotlib.pyplot as plt
plt.plot([0,2,4,6,8],[3,1,4,5,2])#要绘制的点的横纵坐标
plt.ylabel("Grade")
plt.axis([-1, 10, 0, 6])#横纵坐标的极致
plt.savefig('test',dpi=600) #PNG文件,太强了,直接生成相应的图片
plt.show()
散点图
import numpy as np
import matplotlib.pyplot as plt
#散点图
fig, ax = plt.subplots()
ax.plot(10 * np.random.randn(100), 10 * np.random.randn(100), 'o')
ax.set_title('Simple Scatter')
plt.show()
极坐标绘图
import numpy as np
import matplotlib.pyplot as plt
#极坐标
N = 20
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = 10 * np.random.rand(N)
width = np.pi / 4 * np.random.rand(N)
ax = plt.subplot(111, projection='polar')
bars = ax.bar(theta, radii, width = width, bottom = 0.0)
for r, bar in zip(radii, bars):
bar.set_facecolor(plt.cm.viridis(r / 10.))
bar.set_alpha(0.5)
plt.show()
三角函数等曲线图
import numpy as np
import matplotlib.pyplot as plt
def f(t):
return np.exp(-t) * np.cos(2 * np.pi * t)
a = np.arange(0.0, 5.0, 0.02)
plt.subplot(211) # 可以将3个参数合并传参
plt.plot(a ,f(a))
plt.subplot(2,1,2)
plt.plot(a, np.cos(2 * np.pi * a),'r--')
plt.show()
射线图
import numpy as np
import matplotlib.pyplot as plt
a = np.arange(10)
plt.plot(a, a*1.5,'go-', a, a*2.5,'rx', a, a*3.5,'*', a, a*4.5,'b-.')#变好看了,花里胡哨
plt.show()
进行汉字的显示操作
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='SimHei' # 'SimHei'是黑体
plt.plot([3,1,4,5,2])
plt.ylabel("纵轴(值)")
plt.savefig('test',dpi=600)
进行子区域划分操作
import matplotlib
import matplotlib.gridspec as gridspec
matplotlib.rcParams['font.size']=6
gs = gridspec.GridSpec(2,2)
ax1 = plt.subplot(gs[0, :])
a = np.arange(10)
plt.plot(a, a*1.5,'go-', a, a*2.5,'rx', a, a*3.5,'*', a, a*4.5,'b-.')#变好看了,花里胡哨
plt.show()
ax2 = plt.subplot(gs[1, :-1])
a = np.arange(10)
plt.plot(a, a*1.5,'go-', a, a*2.5,'rx', a, a*3.5,'*', a, a*4.5,'b-.')#变好看了,花里胡哨
plt.show()
ax3 = plt.subplot(gs[1:, -1])
a = np.arange(10)
plt.plot(a, a*1.5,'go-', a, a*2.5,'rx', a, a*3.5,'*', a, a*4.5,'b-.')#变好看了,花里胡哨
plt.show()
这里是2*2的区域,每个区域中都课对应不同的坐标显示。