使用matplotlib绘制简单图表

本文介绍了Python中的matplotlib库,重点讲解了如何使用plot绘制折线图以及使用bar绘制柱状图和条形图。通过实例展示了如何展示北京市未来15天最高气温和最低气温趋势,以及电商平台的GMV和商品种类的网购替代率。
摘要由CSDN通过智能技术生成

 前言

  matplotlib是Python中众多数据可视化库的鼻祖,其设计风格与20世纪80年代设计的商业化程序语言MATLAB十分接近,具有很多强大且复杂的可视化功能。matplotlib包含多种类型的API(Application Program Interface,应用程序接口),可以采用多种方式绘制图表并对图表进行定制。

   matplotlib实际上是一个面向对象的绘图库,它所绘制的图表元素均对应一个对象。matplotlib库仅需开发人员编写几行代码即可绘制一个图表,包括折线图、柱形图或堆积柱形图、条形图或堆积条形图、堆积面积图、直方图、饼图或圆环图、散点图或气泡图、箱形图、雷达图、误差棒图。


一.使用plot()绘制折线图

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

plot(x, y, fmt, scalex=True, scaley=True, data=None, label=None,
     *args, **kwargs)

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

plt.plot(x1,y1) 
plt.plot(x2,y2)


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

arr = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,1211)
plt.plot(arr[0], arr[1:])


(3)调用plot时传组数据来绘制具有多个线条的折线图,示例代码如下: 

plt.plot(x1,y1,x2,y2)


实例1:未来15天最高气温和最低气温

北京市未来15天的最高气温和最低气温
日期 最高气温最低气温
9月4日3219
9月5日3319
9月6日34 20
9月7日3422
9月8日3322
9月9日3121
9月10日3022
9月11日2916
9月12日3018
9月13日2918
9月14日2617
9月15日2314
9月16日2115
9月17日2516
9月18日3116

使用plot()函数绘制反映最高气温和最低气温趋势的折线图及平均气温,具体代码如下:

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])
y_med = np.array(y_max + y_min) /2.0

plt.plot(x,y_max)
plt.plot(x,y_min)
plt.plot(x,y_med)

plt.show()

二.使用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)

实例2:2013—2019财年某电商平台的GMV

2013—2019财年某电商平台的GMV
 财年

淘宝GMV

拼多多GMV 
FY2013107709770
FY20141678014780
FY20152444024400
FY20163092028920
FY20173767038670
FY20184820049200
FY2019

57270

60270

使用bar()函数绘制各年份对应的GMV的柱形图,具体代码如下:

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(1,8)
y1 = np.array([10770, 16780, 24440, 30920, 37670, 48200, 57270])
y2 = np.array([9770, 14780, 23440, 28920, 38670, 49200, 60270])
bar_width = 0.3

plt.bar(x, y1, tick_label=["FY2013", "FY2014", 
                           "FY2015", "FY2016", 
                           "FY2017", "FY2018", "FY2019"],color="orange",width=bar_width)
plt.bar(x+bar_width, y2, color="red",width=bar_width)
plt.show()

三.绘制条形图

使用pyplot的barh()函数可以快速绘制条形图,barh()函数的语法格式如下所示:

barh(y, width, height=0.8, left=None, align='center', *,
     **kwargs)

实例3:各商品种类的网购替代率

各商品种类的网购替代率
商品种类  替代率
家政、家教、保姆等生活服务95.9%
飞机票、火车票95.1%
家具93.5%
手机、手机配件92.4%
计算机及其配套产品89.3%
汽车用品89.2%
通信充值、游戏充值86.5%
个人护理用品86.3%
书报杂志及音像制品86.0%
餐饮、旅游、住宿85.6%
家用电器85.4%
食品、饮料、烟酒、保健品83.5%
家庭日杂用品82.6%
保险、演出事务81.6%
服装、鞋帽、家用纺织品79.8%
数码产品76.5%
其他商品和服务76.3%
工艺品、收藏品67.0%

各商品种类的网购替代率如上图所示,请给条形图添加3%的误差棒。示例代码如下:

import matplotlib.pyplot as plt
import numpy as np
# 显示中文
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)
height=0.3
error = 0.03
labels = ["家政、家教、保姆等生活服务","飞机票、火车票","家具","手机、手机配件",
          "计算机及其配套产品","汽车用品","通信充值、游戏充值","个人护理用品",
          "书报杂志及音像制品","餐饮、旅游、住宿","家用电器",
          "食品、饮料、烟酒、保健品","家庭日志用品","保险、演出事务",
          "服装、鞋帽、家用纺织品","数码产品","其他商品和服务","工艺品、收藏品"]
#绘制条形图
plt.barh(y, x, tick_label=labels, align="center", xerr=error)

plt.show()

Matplotlib是一个强大的Python库,用于数据可视化和制作各种类型的图表,包括线图、柱状图、散点图等。如果你想使用它来展示实验结果并进行分析,可以按照以下步骤操作: 1. **导入库**: 首先,需要安装matplotlib和其他必要的数据处理库,如pandas。你可以通过`pip install matplotlib pandas`命令来安装。 ```python import matplotlib.pyplot as plt import numpy as np import pandas as pd ``` 2. **创建数据**: 创建一些代表实验结果的数据,例如测量值或模拟值。比如,我们有一个关于温度变化的时间序列数据。 ```python time = np.linspace(0, 10, 100) # 时间数组 temperatures = np.sin(time) + np.random.normal(0, 1, size=100) # 正弦波形加上随机噪声 ``` 3. **绘制基本图表**: 使用`plt.plot()`函数绘制线图。 ```python plt.figure() # 创建一个新的图形窗口 plt.plot(time, temperatures, label='Temperature') # 绘制曲线并添加标签 plt.title('Experiment Results - Temperature Variation Over Time') # 设置标题 plt.xlabel('Time (seconds)') # X轴标签 plt.ylabel('Temperature (°C)') # Y轴标签 plt.legend() # 显示图例 plt.show() # 展示图表 ``` 4. **分析和解释**: 分析图表,查看温度随时间的变化趋势,注意是否存在周期性、异常值或者与预期结果的偏离。根据实际实验目的,可能还需要添加更多的统计指标、误差条、或者比较其他组别的数据。 5. **保存图表**: 如果想保存图表,可以使用`plt.savefig()`函数指定文件名和格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值