使用matplotlib绘制简单图表(上)

1.绘制折线图

使用plot()绘制折线图

plot(x,y,fmt,label = None)

常用参数含义如下:

x:表示x轴数据,默认为range(len(y))

y:表示y轴数据

fmt:表示快速设置线条样式的格式字符串

label:表示应用于图例的标签文本

案例:天气变化

代码:

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(4,19)
y_max = np.array([32,33,34,34,33,31,30,29,30,29,26,23,21,25,31])#每日最高气温
y_min = np.array([19,19,20,22,22,21,22,16,18,18,17,14,15,16,16])#每日最低气温
plt.plot(x,y_max,x,y_min)
plt.show()#展示所绘制图像

结果展示: 

2.绘制柱形图或堆积柱形图

使用bar()绘制柱形图或堆积柱形图

bar(x,height,width = 0.8,bottom = None,align = "center",tick_label = None,xerr = None,yerr = None)

x:表示柱形的x坐标值

height:表示柱形的高度

width:表示柱形的宽度,默认为0.8

bottom:表示柱形底部的y坐标值,默认为0 

 案例:一段时间的某电商平台的GMV

代码:

import  numpy as np
import matplotlib.pyplot as plt
x = np.arange(1,8)
y = np.array([10770,16780,24440,30920,37670,48200,57270])
plt.bar(x,y)
plt.xticks(x,("FY2013","FY2014","FY2015","FY2016","FY2017","FY2018","FY2019"))
plt.show()

结果展示:

 3.绘制条形图或堆积条形图

使用barh()绘制条形图或堆积条形图

barh(y,tidth,height = 0.8,left = None,align = "center")

y:表示条形的y坐标值

width:表示条形的宽度,默认为0.8

height:表示条形的高度

left:条形左侧的x坐标,默认为0

align:表示条形的对齐方式,有“center”,“edge”两个取值

案例:商品的网购替代料

代码:

import  numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = np.array([0.959,0.951,0.935,0.924,0.893,
              0.892,0.865,0.863,0.860,0.856,
              0.854,0.835,0.826,0.816,0.798,
              0.765,0.763,0.67])
y = np.arange(1,19)
labels = ["家政、家教、保姆等生活服务","飞机票、火车票","家具","手机、手机配件","计算机及其配套产品","汽车用品","通信充值","游戏充值","个人护理用品","书报杂志","餐饮、旅游、住宿","家用电器","食品、饮料","家庭日杂","保险","服装","数码产品","其他商品和服务","工艺品"]
plt.barh(y,x,align = "center")
plt.yticks(y,(labels))
plt.show()

结果展示:

4.绘制堆积面积图

使用stackplot()绘制堆积面积图 

stackplot(x,y,labels = (),baseline = 'zero',data = None)

x:表示x轴的数据,可以是一维数组

y:表示y轴的数据,可以是二维数组或一维数组序列

labels:表示每组折线及填充区域的标签

案例:物流费用统计

代码:

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(1,13)
y_a = np.array([198,215,245,222,200,236,201,253,236,200,266,290])
y_b = np.array([203,236,200,236,269,216,298,333,301,349,360,368])
y_c = np.array([185,205,226,199,238,200,250,209,246,219,253,288])
plt.stackplot(x,y_a,y_b,y_c)
plt.show()

结果展示:

5. 绘制直方图

使用hist()绘制直方图

hist(x,bins = None,range = None,cumulative = False,bottom = None,histtype = 'bar',align = 'mid')

x:表示x轴的数据,可以为单个数组或多个数组的序列

bins:表示矩形条的个数,默认为10

range:表示数据的范围。若未提供,默认数据范围为(x.min(),x.max())

cumulative:表示是否计算累计频数或频率

histtype:表示直方图的类型,支持'bar'、‘barstacked’、‘step’、‘stepfill’

案例:人脸识别的灰度直方图

代码:

import matplotlib.pyplot as plt
import  numpy as np
random_state = np.random.RandomState(19680801)
random_x = random_state.randn(10000)
plt.hist(random_x,bins=25)
plt.show()

结果展示:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值