利用matplotlib库中面向对象API,绘制折线图和柱形图

使用pyplot的plot()函数可以快速绘制折线图。plot()函数的语法格式如下所示:

plot(x,y,fmt,scalex=Ture,scaley=Ture,data=None,label=None,*args.**Kwargs)
该函数常用参数的含义如下。

x:表示x轴的数据。

y:表示y轴的数据。

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

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

plot()函数会返回一个包含Line2D类对象的列表。

使用pyplot的plot()函数来绘制具有多个线条的折线图,通过以下任意一种方式均可以完成。

(1)多次调用plot()函数来绘制具有多个线条的折线图,示例代码如下:

plt.plot(x1,y1)
plt.plot(x2,y2)
(1)调用plot()函数时传入一个二维数组来绘制具有多个线条的折线图。例如,将二数组 arr 的第一行数据作为x轴的数据、其他行数据全部作为y轴的数据,代码如下。

arr = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
plt.plot(arr[0],arr[1:])
(1)调用plot()函数时传入多组数据来绘制具有多个线条的折线图,示例代码如下:

plt.plot(x1,y1,x2,y2)
2.1.2 实例1:未来15天最高气温和最低气温
俗话说“天有不测风云”,说明天气是变幻莫测的。人们的生活离不开天气预报,无论是居家还是外出,人们都时刻关注着天气的变化,以便随时备好余 、增减衣服,,或者为出行计划做好准备。

根据表 2-1的数据,将“日期”这一列的数据作为x轴的数据,将“最高气温”和“最低气温”两列的数据作为y轴的数据,使用 plot0 函数绘制反映最高气温和最低气温趋势的折线图,具体代码如下。

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)
plt.plot(x,y_min)
plt.show()
以上代码首先导人了matplotlib.pyplot和numpy模块,分别将这两个楼重命名为plt和np,其次将表2-1的数据分别作为x轴和y轴的数据,然后连续两次调用0西数分制了两条折线,最后调用show()函数进行展示。
运行程序,效果如图 2-1 所示。

图2-1 中,x轴代表日期,y轴代表温度,位于上方的蓝色折线和下方的橙色折线分别代表最高温度和最低温度。由图 2-1可知,北京市未来 15 天的最高气温和最低气温都逐步下降后反弹的趋势。

二、使用 bar()绘制柱形图或堆积柱形图
使用pyplot的bar()函数可以快速绘制柱形图或堆积柱形图。bar()函数的语法格式如下所示 :

bar(x,height,width=0.8,bottom=None,align='center',
    data=None,tick_label=None,xerr=None,yerr=None,
    error_kw=None,**kwargs)
该函数常用参数的含义如下。

x:表示柱形的x坐标值。

height:表示柱形的高度。

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

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

align:表示柱形的对齐方式,有'center' 和'edge'两个取值,其中'center'表示将柱形与刻度线居中对齐;'edge' 表示将柱形的左边与刻度线对齐。

tick_label:表示柱形对应的刻度标签。

xerr,yerr:若未设为 None,则需要为柱形图添加水平/垂直误差棒。

error.kw:表示误差棒的属性字典,字典的键对应 erorbar()函数的关键字参数。

bar()函数会返回一个 BarContainer 类的对象。BarContainer 类的对象是一个包含矩形或误差棒的容器,它亦可以视为一个元组,可以遍历获取每个矩形条或误差棒。此外,BarContainer类的对象也可以访问 patches 或 errorbar 属性,从而获取图表中所有的矩形条或误差棒。

例如,使用 bar() 函数绘制柱形图,代码如下。

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(5)
y1 = np.array([10,8,7,11,13])
bar_width = 0.3
plt.bar(x,y1,tick_label=['a','b','c','d','e'],width=bar_width)
plt.show()
运行程序,效果如图所示。

使用 pyplot 的 bar()函数还可以绘制具有多组柱形的柱形图。例如,使用 bar()函数绘制个具有两组柱形的柱形图,代码如下。

x = np.arange(5)
y1 = np.array([10,8,7,11,13])
y2 = np.array([9,6,5,10,12])
bar_width = 0.3
plt.bar(x,y1,tick_label=['a','b','c','d','e'],width=bar_width)
plt.bar(x+bar_width,y2,width=bar_width)
plt.show()
运行程序,效果如图所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值