Matplotlib绘图(三)

目录

Matplotlib(三)

绘制柱状图

bar函数

barh、axhline、axvline函数

柱状图实例1

legend、xticks函数

Matplotlib(三)

绘制柱状图

使用bar函数可以绘制柱状图。柱状图需要水平的x坐标值,以及每一个x坐标值对应的y坐标值,从而形成柱状的图。柱状图主要用来纵向对比和横向对比的。例如:根据年份对销售收据进行纵向对比,x坐标值就表示年份,y坐标值表示销售数据

bar函数

bar函数:显示柱状图。

width:可以设置柱的宽度。

title:添加柱状图名称

xlabel、ytabel:添加x、y名称

注意:bar函数的宽度并不是 像素宽度。bar函数会根据二维坐标系的尺寸,以及x坐标值的多少,自动确定每一个柱的宽度,而width指定的宽度就是这个标准柱宽度的倍数。该参数值可以是浮点数。

使用bar绘制柱状图,并设置柱的宽度。

# 导入matplotlib模块
from matplotlib import pyplot as plt
# 创建 x y    x表示年份,y表示年销量
x=[1980,1985,1990,1995]
x_label=["1980年","1985年","1990年","1995年"]
y=[1000,3000,4000,5000]
# 修改中文乱码
plt.rcParams["font.sans-serif"]=["SimHei"]  # 用来正常显示中文标签
# 修改x坐标的值
plt.xticks(x,x_label)
# 添加x、y名称
plt.xlabel("年份")
plt.ylabel("年销量")
# 图形名称
plt.title("1980-1995某产品年销量")
# 调用bar函数 显示柱状图
plt.bar(x,y,width=3)    # width可以设置柱的宽度
plt.show()

图示:

 

barh、axhline、axvline函数

barh函数:barh函数将x与y的位置在图形上互换 x换成纵向坐标,y换成横向坐标

axhline:在y=0处设置分界线。

axvline函数:在x=0处设置分界线。

可用color对其设置该分界线的颜色,用linewidth设置该分界线的宽度。

使用bar和barh函数绘制柱状图

# 导入matplotlib模块
import matplotlib.pyplot as plt
import numpy as np
# 使每次遍历所得随机数一致
np.random.seed(0)
# 创建x y
x=np.arange(5)
y=np.random.randint(-5,5,5)
# 将区域分为一行两列 在第一列使用bar函数
plt.subplot(1,2,1)
# 在x=0处设置分界线
plt.axhline(0,color="black",linewidth=1)
plt.bar(x,y)
# 将区域分为一行两列 在第二列使用barh函数    barh函数将x与y的位置在图形上互换
plt.subplot(1,2,2)
# 在y=0处设置分界线
plt.axvline(0,color="black",linewidth=1)
plt.barh(x,y,color="red")   # color设置柱的颜色
plt.show()

图示:

 

柱状图实例1

用两种不同颜色分别表示y>0和y<0这两种情况:

# 导入matplotlib模块
import matplotlib.pyplot as plt
import numpy as np
# 使每次遍历所得随机数一致
np.random.seed(0)
# 创建x y
x=np.arange(5)
y=np.random.randint(-5,5,5)
# 在x=0处设置分界线
plt.axhline(0,color="black",linewidth=1)
# 将y大于0和小于0用两种不同颜色表示
b_var= plt.bar(x,y,color="red")
for bar,hight in zip(b_var,y):
    if hight<0:
        bar.set(color="green")
plt.show()

图示:

 

legend、xticks函数

legend函数:添加图例,使其显示柱状图种每种颜色分别代表什么。

xtick函数:设置x坐标的值,将原本的x坐标值转换为其他形式。

# 导入matplotlib模块
import matplotlib.pyplot as plt
import numpy as np
# 准备数据 三部电影的名称
real_names=["千与千寻","玩具总动员4","黑衣人:全球追缉"]
# 3天的票房数
real_num1=[7548,4013,1673]
real_num2=[5453,1840,1080]
real_num3=[4535,2456,2141]
x=np.arange(len(real_names))
# 绘制柱状图
width=0.3
plt.bar(x,real_num1,alpha=0.5,width=width)
plt.bar([width+i for i in x],real_num2,alpha=0.5,width=width)
plt.bar([2*width+i for i in x],real_num3,alpha=0.5,width=width)
# 设置x坐标的值
plt.rcParams["font.sans-serif"]=["SimHei"]  # 用来正常显示中文标签
x_label=["第{}天".format(i+1) for i in x]
plt.xticks([width+i for i in x],x_label)
# 设置y坐标
plt.ylabel("单日票房总数")
# 添加图例
plt.legend(real_names)
# 添加标题
plt.title("近3天三种电影票房总数")
plt.show()

图示:

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

And ν

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

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

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

打赏作者

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

抵扣说明:

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

余额充值