matplotlib绘图
import numpy as np
import matplotlib.pyplot as plt
#魔法指令,让绘制出来的图例展示在当前文件中
%matplotlib inline
plt.plot()绘制线性图
绘制单条线形图
绘制多条线形图
设置坐标系的比例plt.figure(figsize=(a,b))
设置图例legend()
设置轴的标识
-
图例保存
fig = plt.figure()
plt.plot(x,y)
figure.savefig()
曲线的样式和风格(自学)
绘制单条线形图
x = np.array([1,2,3,4,5])
y = x + 2
plt.plot(x,y)
x = x
y = x ** 5
plt.plot(x,y)
绘制多条线形图
plt.plot(x,y)
plt.plot(x-2,y+3)
设置轴的标识
#坐标系设置表示
plt.plot(x,y)
plt.xlabel('temp')
plt.ylabel('dist')
plt.title('temp&dist')
设置图例 legend()
plt.plot(x,y,label='aaa')
plt.plot(x-2,y+3,label='bbb')
plt.legend()
设置坐标系的比例
#等比例的放大或者缩小坐标系(坐标的刻度是不会发生改变)
plt.figure(figsize=(15,10)) #一定写在绘图操作之前
plt.plot(x,y,label='aaa')
plt.plot(x-2,y+3,label='bbb')
plt.legend()
#保存图像
fig = plt.figure() #1.实例化对象
#2.绘图
plt.plot(x,y,label='aaa')
plt.plot(x-2,y+3,label='bbb')
plt.legend()
#3.保存图片
fig.savefig('./123.png')
曲线的样式和风格
柱状图 plt.bar()
- 参数:第一个参数是索引。第二个参数是数据值。第三个参数是条形的宽度
x = [1,2,3,4,5]
y = [3,8,5,7,6] #柱高
plt.bar(x,y)
x = [1,2,3,4,5]
y = [3,8,5,7,6] #柱高
plt.barh(x,y)
plt.axes(polar=True)
data = np.array([1,2,3,4,5,6])
index = [1,2,3,4,5,7]
plt.bar(x=index,height=data,width=0.5)
直方图 hist()
是一个特殊的柱状图,又叫做密度图
-
plt.hist()的参数
bins 可以是一个bin数量的整数值,也可以是表示bin的一个序列。默认值为10
normed 如果值为True,直方图的值将进行归一化处理,形成概率密度,默认值为False
color 指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色
orientation 通过设置orientation为horizontal创建水平直方图。默认值为vertical
x = [1,1,1,1,2,3,3,3,4,5,5,6,6,6,6,6,6,6,7,8,9]
plt.hist(x,bins=20) #bins表示柱子的个数
输出结果:
(array([4., 0., 1., 0., 0., 3., 0., 1., 0., 0., 2., 0., 7., 0., 0., 1., 0.,
1., 0., 1.]),
array([1\. , 1.4, 1.8, 2.2, 2.6, 3\. , 3.4, 3.8, 4.2, 4.6, 5\. , 5.4, 5.8,
6.2, 6.6, 7\. , 7.4, 7.8, 8.2, 8.6, 9\. ])
饼图 pie()
pie(),饼图也只有一个参数x
饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小
arr=[11,22,31,15]
plt.pie(arr)
arr=[0.2,0.3,0.1]
plt.pie(arr)
arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'])
arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3)
arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3,autopct='%.6f%%')
arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3,shadow=True,explode=[0.2,0.3,0.2,0.4])
散点图 scatter()
- 因变量随自变量而变化的大致趋势
x = np.linspace(-np.pi,np.pi,num=20)
y = np.random.randint(0,20,size=(20,))
![](https://upload-images.jianshu.io/upload_images/20605284-d69b795868b18014.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
x = np.random.normal(loc=0,scale=5,size=1000)
y = np.random.normal(loc=0,scale=5,size=1000)
plt.plot() # plot绘制的是折线图
plt.scatter(x,y) # plt.scatter()绘制的是散点图
![output_23_1.png](https://upload-images.jianshu.io/upload_images/20605284-73c68c82552367f2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
plt.scatter(x,y,s=80,c='red') # s size指的是散点的大小 c color指的是散点的颜色
![output_24_1.png](https://upload-images.jianshu.io/upload_images/20605284-253ae1eee162b777.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
size = np.random.randint(0,100,1000)
color = np.random.random(size=(1000,3))
给这1000个点 随机产生 不同的 大小和颜色
plt.scatter(x,y,s=size,c=color,alpha=0.6,marker='*')
plt.axis('off')
![o.png](https://upload-images.jianshu.io/upload_images/20605284-0ba5e736491ffeba.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)![![output_24_1.png](https://upload-images.jianshu.io/upload_images/20605284-51a5dc126be01071.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
](https://upload-images.jianshu.io/upload_images/20605284-52f5a1747db8e555.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)