python条形图和线形图的绘制,并显示数据

本文介绍了matplotlib.pyplot库的基础用法,包括创建图表、设置标题、坐标轴标签、图例、取值范围和坐标轴注释。通过实例演示了如何绘制线形图和条形图,展示了如何使用plot()和bar()函数以及参数设置。
摘要由CSDN通过智能技术生成
1. matplotlib.pyplot库的简述

pyplot是matplotlib的子库,主要用于实现各种数据展示图形的绘制

首先导入此包,方便引用取个别名plt
import matplotlib.pyplot as plt

2. 能实现画图的最基本函数

创建一个全局绘图区域,facecolor=None 为无色背景
plt.figure(figsize=None, facecolor=None)
figsize(a,b)中的参数a是指绘图区宽度,b则是高度
plt.figure(figsize=(8,4), facecolor=“yellow”)
plt.show() 将绘图结果显示出来

常用函数举例
plt.title()为所做之图取个标题,如plt.title(“一周内温度变化折线图”)
plt.xlabel(s)设置x轴的标签,如plt.xlabel(“年份”)
plt.ylabel(s)设置y轴的标签,如plt.ylabel(“人数/万人”)
plt.legend()为坐标轴放置图注,plt.legend()默认调整 ,如plt.legend(loc=“upper left”)自我调整
plt.xlim(xmin,xmax)设置x轴的取值范围,如pltxlim(0,10)
plt.ylim(ymin,ymax)设置y轴的取值范围,如plt.ylim(0,30)
plt.xticks()显示x坐标对应位置的内容,就是位置更名函数,如plt.xticks(x,x_ticks)
例如x = [0,1,2,3,4,5]和x_ticks = [“张三”, “李四”, “王五”, “钱六”, “赵大”, “孙七”]
plt.text(x,y,s,fontdic,withdash)为坐标图轴添加注释
若要在表中显示中文,需要字体设置函数,给出常见的7中文字体

如:plt.rcParams[“font.family”] = “kaiTi”

字体名称字体的英文表示
宋体SimSun
黑体SimHei
楷体KaiTi
微软雅黑Microsoft YaHei
隶书LiSu
仿宋FangSong
幼圆YouYuan
3.线形图,条形图的图表函数:
3.1绘制线形图的 plot()函数的参数说明

plot( x , y , [fmt] , …)

参数说明
xx轴坐标,一般为列表(没有值时,值的个数默认与y轴坐标个数相同,从0开始增大)
yy轴坐标,通常是一个数或数组
fmt定义线的基本元素,由颜色、标记的形状、线条的形状三部分字符组成,如"rO–"== “红色/标记是实心圆/破折线”
自定义:color(颜色)marker(标记的形状)linestyle(线条形状)linewidth(线条宽度)marksize(标记的大小)label(标签,用于图例)

常用标记样式:

S --> 实心正方形 P --> 实心五角星 O --> 实心圆 * --> 星形 D --> 菱形

常用线形样式:

- 实线 虚线 破折线 -. 画点线

常用颜色字符:

b 蓝色 m 洋红色 w 白色
g 绿色 y 黄色
r 红色 k 黑色

也可以使用全称(red、green)还可以使用十六进制字符串(如#aabbcc)

3.2线形图示例
import matplotlib.pyplot as plt

plt.rcParams["font.family"] = "KaiTi"
x = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
highest = [12, 15, 18, 14, 16, 14, 10]
lowest = [6, 4, 8, 12, 10, 9, 7]
plt.ylim(0, 25)
plt.plot(x, highest, "rs--", label="最高气温")
plt.plot(x, lowest, "rd--", label="最低气温")
for a, b in zip(x, highest):
    plt.text(a, b+1, b, ha='center', va='bottom')
    # 数据显示的横坐标、显示的位置高度、显示的数据值的大小
for a, b in zip(x, lowest):
    plt.text(a, b-2, b, ha='center', va='bottom')
plt.title("一周气温变化趋势")
plt.xlabel("星期")
plt.ylabel("气温")
plt.legend()
plt.show()

plt.text(a,b,b)

数据显示x轴对应位置、显示的位置高度(可以调整)、显示的数据值的大小

for a, b in zip(x, highest): # 使用for 循环依次次输出 zip()对应连接

plt.text(a, b + 2, b, ha=‘center’, va=‘bottom’)

在这里插入图片描述

3.3绘制条形图的 bar()函数的参数说明> plot( x , y , [fmt] …)

bar( x , y , width=0.8,bottom=None ,align= “center”,color=“yellow” )

参数说明
xx轴的位置序列,一般为列表中的值
yy轴的数值序列,条形图的高度,需要展示的数据
width每个条形的宽度,可调整
align条形与x轴对齐方式,有center和edge两种,默认为center
color每个条形的填充颜色
edgecolor每个条形的边框颜色

注意:如果要在一个途图中显示多个条形图,可调整位置align,和宽度width,使并列或重叠显示

3.2条形图示例
import matplotlib.pyplot as plt

plt.rcParams["font.family"] = "kaiTi"
nums = [172, 169, 177, 201, 238, 290]
x_ticks = [2014, 2015, 2016, 2017, 2018, 2019]
x = range(0, len(nums))
# 显示x坐标对应位置的内容,就是位置更名函数,plt.xticks()
plt.xticks(x, x_ticks)  # rotation="vertical" 倒转九十度
plt.bar(x, nums, width=0.6, label="研究生人数")
# plt.text(a,b,b)数据显示的横坐标、显示的位置高度、显示的数据值的大小
for a, b in zip(x, nums):
    plt.text(a, b + 2, b, ha='center', va='bottom')
plt.xlabel("年份")
plt.ylabel("人数/万人")
plt.legend(loc="upper left")  # 显示标签
plt.show()

plt.text(a,b,b)

数据显示x轴对应位置、显示的位置高度(可以调整)、显示的数据值的大小

for a, b in zip(x, nums): # 使用for 循环依次次输出 zip()对应连接

plt.text(a, b + 2, b, ha=‘center’, va=‘bottom’)

在这里插入图片描述

3.3条形图示例2
import matplotlib.pyplot as plt
import numpy as np

plt.figure(figsize=(8,6),facecolor="yellow")
plt.rcParams["font.family"] = "kaiTi"
nums = [172, 169, 177, 201, 238, 290]
luqu_nums = [54, 57, 58, 72, 76, 79]
x_ticks = [2014, 2015, 2016, 2017, 2018, 2019]
x = range(0, len(nums))
# 显示x坐标对应位置的内容,就是位置更名函数,plt.xticks()
plt.xticks(x, x_ticks)  # rotation="vertical" 倒转九十度
plt.bar(x, nums, width=0.4, label="研究生报考人数")
plt.bar([i + 0.4 for i in x], luqu_nums, width=0.4, label="研究生录取人数")

# plt.text(a,b,b)数据显示的横坐标、显示的位置高度、显示的数据值的大小
for y in nums, luqu_nums:
    for a, b in zip(x, y):
        if y == luqu_nums:
            a += 0.4            # 控制第二个条形数据显示的横坐标
        plt.text(a, b + 2, b, ha='center', va='bottom')


plt.xlabel("年份")
plt.ylabel("人数/万人")
plt.legend(loc="upper left")  # 显示标签
plt.show()

plt.text(a,b,b)数据显示的横坐标、显示的位置高度、显示的数据值的大小

for y in nums, luqu_nums:

for a, b in zip(x, y):

if y == luqu_nums:

a += 0.4 # 控制第二个条形数据显示的横坐标

plt.text(a, b + 2, b, ha=‘center’, va=‘bottom’)

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

键盘敲烂工资过万

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值