码迷,mamicode.com
首页 > 其他好文 > 详细

Matplotlib

时间:2021-01-29 12:04:39      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:标准   表示   rpd   百分比   变化   lock   图库   平移   seed   

1 matplotlib

1.1 什么是matplotlib

python的底层绘图库,主要做数据可视化图表,名字取材于Matlab,模仿Matlab构建

1.2 散点图

1.2.1 概念

  • 散点图显示两组数据的值,每个点的坐标位置由变量的值决定
  • 用一组不连续的点组成,用于观察两组数据的相关性

1.2.2 举例

身高-体重

代码

from matplotlib import pyplot as plt
import numpy as np

height=[161,170,182,175,173,165]
weight=[50,58,80,70,69,55]

plt.scatter(height,weight)
plt.show()

技术图片

正相关、负相关、不相关

  • 不相关
from matplotlib import pyplot as plt
import numpy as np

N=1000

x=np.random.randn(N)
y1=np.random.randn(N)

plt.scatter(x,y1)
plt.show()

技术图片

  • 正相关
from matplotlib import pyplot as plt
import numpy as np

N=1000

x=np.random.randn(N)
y=x+np.random.randn(N)*0.5

plt.scatter(x,y)
plt.show()

技术图片

1.2.3 外观调整

  • 颜色:c
  • 点大小:s
  • 透明度:alpha
  • 点形状:marker

1.3 折线图

1.3.1 概念

  • 用直线段将各数据连接起来组成的图形
  • 常用来观察数据随时间变化的趋势

1.3.2 举例

函数图--二次曲线

from matplotlib import pyplot as plt
import numpy as np

x=np.linspace(-10,10,100)
y=x**2

plt.plot(x,y)
plt.show()

技术图片

日期调整:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# xxx是标志股票涨跌的数据,第一列date为日期,第三列open为开盘价,第五列close为收盘价,skiprows=1代表跳过第一列数据(第一列为数据标示),usecols表示使用哪几列数据,unpack为True则拆分列,为False则不进行拆分

date,open,close=np.loadtxt(‘xxx‘,delimeter=‘,‘,converters={0:mdates.strpdate2num(‘%m/%d/%Y‘)},skiprows=1,usecols=(0,1,4),unpack=True) # 这里将第0列,即日期转化为matplotlib认识的数值型

plt.plot_date(date,open,‘-‘)
plt.show()

1.3.3 外观调整

  • 线型 linestyle
  • 颜色 color
  • 点形状 marker

1.4 条形图

1.4.1 概念

  • 以长方形的长度为变量的统计图表
  • 用来比较多个项目分类的数据大小

1.4.2 举例

横向条形图

from matplotlib import pyplot as plt
import numpy as np

N=5
y=[30,10,30,25,15]

index=np.arange(N)

p1=plt.bar(x=index,height=y,color=‘green‘,width=0.7)
plt.show()

技术图片

纵向条形图

from matplotlib import pyplot as plt
import numpy as np

N=5
y=[30,10,30,25,15]

index=np.arange(N)

p1=plt.barh(y=index,width=y,color=‘green‘,height=0.7)
# 使用barh函数,参数需要更改
plt.show()

技术图片

层叠式条形图

样式一

from matplotlib import pyplot as plt
import numpy as np

index=np.arange(4)

sales_BJ=[52,55,83,53]
sales_SH=[44,66,55,41]

bar_width=0.3

plt.bar(index,sales_BJ,bar_width,color=‘b‘)
plt.bar(index+bar_width,sales_SH,bar_width,color=‘r‘)
# x值变化起到平移的效果
plt.show()

技术图片

样式二

from matplotlib import pyplot as plt
import numpy as np

index=np.arange(4)

sales_BJ=[52,55,83,53]
sales_SH=[44,66,55,41]

bar_width=0.3

plt.bar(index,sales_BJ,bar_width,color=‘b‘)
plt.bar(index,sales_SH,bar_width,color=‘r‘,bottom=sales_BJ)
# bottom参数
plt.show()

技术图片

1.5 直方图

1.5.1 概念

  • 由一系列高度不等的纵向条形组成,表示数据分布的情况
  • 例如某年级同学的身高分布情况
  • 注意和条形图的区别

1.5.2 举例

均值为100,标准差为20的数据

![截屏2021-01-09 15.11.19](https://gitee.com/Jenner_s/my-blog-pics/raw/master/img/截屏2021-01-09 15.11.19.png)

from matplotlib import pyplot as plt
import numpy as np

mu = 100 # mean of distribution
sigma = 20 #standard deviation of distribution

x = mu + sigma * np.random.randn(2000)

plt.hist(x,bins=10,color=‘red‘,edgecolor=‘white‘,density=True)
plt.show()

技术图片

2-D直方图

from matplotlib import pyplot as plt
import numpy as np

x = np.random.randn(1000)+2
y = np.random.randn(1000)+3

plt.hist2d(x,y,bins=40) # 以颜色深浅表示分布密度
plt.show()

技术图片

1.6 饼状图

1.6.1 概念

  • 显示一个数据系列中各项的大小与各项总和的比例
  • 饼状图中的数据点显示为整个饼状图的百分比

1.6.2 举例

from matplotlib import pyplot as plt
import numpy as np

explode=[0,0.05,0,0] # explode代表各项远离圆心的距离
labels= ‘A‘,‘B‘,‘C‘,‘D‘
fracs=[15,30,45,10]

plt.pie(x=fracs,labels=labels,autopct=‘%.2f%%‘,explode=explode,shadow=True)
# autopct代表显示比例格式,shadow代表阴影效果
plt.show()

技术图片

1.7 箱形图

1.7.1 概念

  • 箱形图 (box-plot) 又称为盒须图、盒式图或箱线图
  • 是一种显示一组数据分散情况的统计图
  • 上边缘,上四分位数,中位数,下四分位数,下边缘,异常值

1.7.2 举例

from matplotlib import pyplot as plt
import numpy as np

#np.random.seed(100)
data=np.random.normal(size=1000,loc=0,scale=1)

plt.boxplot(data)
plt.show()

技术图片

多组箱形图

from matplotlib import pyplot as plt
import numpy as np

#np.random.seed(100)
data=np.random.normal(size=(1000,4),loc=0,scale=1)
labels=[‘A‘,‘B‘,‘C‘,‘D‘]

plt.boxplot(data,sym=‘o‘,labels=labels)
plt.show()

技术图片

Matplotlib

标签:标准   表示   rpd   百分比   变化   lock   图库   平移   seed   

原文地址:https://www.cnblogs.com/JennerShao/p/14341848.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!