Matplotlib基础二


import matplotlib.pyplot as plt
import numpy as np

plt.plot()绘制线性图

  • 绘制单条线形图
  • 绘制多条线形图
  • 设置坐标系的比例plt.figure(figsize=(a,b))
  • 设置图例legend()
  • 设置轴的标识
  • 图例保存
    • fig = plt.figure()
    • plt.plot(x,y)
    • figure.savefig()

In [2]:

#绘制单条线形图
x = np.array([1,2,3,4,5])
y = x + 3

plt.plot(x,y)

Out[2]:

[<matplotlib.lines.Line2D at 0x111dc3f28>]

img

In [3]:

#绘制多条线形图
plt.plot(x,y)
plt.plot(x+1,y-2)

Out[3]:

[<matplotlib.lines.Line2D at 0x111e38b00>]

img

In [4]:

plt.plot(x,y,x+1,y-2)

Out[4]:

[<matplotlib.lines.Line2D at 0x111f80a20>,
 <matplotlib.lines.Line2D at 0x111f80be0>]

img

In [7]:

#设置坐标系的比例plt.figure(figsize=(a,b))
plt.figure(figsize=(5,9))#放置在绘图的plot方法之前
plt.plot(x,y)

Out[7]:

[<matplotlib.lines.Line2D at 0x1120aebe0>]

img

In [14]:

#设置图例legend()
plt.plot(x,y,label='x,y')
plt.plot(x+1,y-2,label='x+1,y-2')
plt.legend() #图例生效

Out[14]:

<matplotlib.legend.Legend at 0x11693a5f8>

img

In [17]:

#设置轴的标识
plt.plot(x,y)
plt.xlabel('temp')
plt.ylabel('dist')
plt.title('dist&temp')

Out[17]:

Text(0.5,1,'dist&temp')

img

In [20]:

#图例保存
#fig = plt.figure()
#plt.plot(x,y)
#figure.savefig()
fig = plt.figure()  #该对象的创建一定要放置在plot绘图之前
plt.plot(x,y,label='x,y')
fig.savefig('./123.png')

img

In [25]:

##曲线的样式和风格(自学)
plt.plot(x,y,c='red',alpha=0.5)

Out[25]:

[<matplotlib.lines.Line2D at 0x1170d2ef0>]

img

柱状图:plt.bar()

  • 参数:第一个参数是索引。第二个参数是数据值。第三个参数是条形的宽度

In [28]:

plt.bar(x,y)

Out[28]:

<BarContainer object of 5 artists>

img

直方图

  • 是一个特殊的柱状图,又叫做密度图
  • plt.hist()的参数
    • bins 可以是一个bin数量的整数值,也可以是表示bin的一个序列。默认值为10
    • normed 如果值为True,直方图的值将进行归一化处理,形成概率密度,默认值为False
    • color 指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色
    • orientation 通过设置orientation为horizontal创建水平直方图。默认值为vertical

In [34]:

data = [1,1,2,2,2,3,4,5,6,6,6,6,6,6,7,8,9,0]
plt.hist(data,bins=20)

Out[34]:

img

饼图

  • pie(),饼图也只有一个参数x
  • 饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小

In [37]:

arr=[11,22,31,15]
plt.pie(arr)

Out[37]:

img

In [36]:

arr=[0.2,0.3,0.1]
plt.pie(arr)

Out[36]:

img

In [38]:

arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'])

Out[38]:

img

In [39]:

arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3)

Out[39]:

img

In [40]:

arr=[11,22,31,15]
plt.pie(arr,labels=['a','b','c','d'],labeldistance=0.3,autopct='%.6f%%')

Out[40]:

img

In [41]:

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])

Out[41]:

img

散点图scatter()

  • 因变量随自变量而变化的大致趋势

In [46]:

x = np.array([1,3,5,7,9])
y = x ** 2 - 3
plt.scatter(x,y)

Out[46]:

<matplotlib.collections.PathCollection at 0x117c1d780>

img