柱状图&条形图

本文介绍了柱状图和条形图作为数据可视化的工具,用于对比分类数据和展示数据变化。内容包括柱状图的适用场景、局限性,以及与堆积柱状图和百分比堆积柱状图的对比。此外,还提到了瀑布图的优势和劣势,以及直方图的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

柱状图/条形图(Bar)

柱状/条形图,通过柱形的高度/条形的宽度来表现数据的大小。

展示多个分类的数据变化和同类别各变量之间的比较情况。

  • 适用:对比分类数据。
  • 局限:分类过多则无法展示数据特点。
  • 相似图表:
    1. 堆积柱状图。比较同类别各变量和不同类别变量总和差异。
    2. 百分比堆积柱状图。适合展示同类别的每个变量的比例。
# 导入柱状图类
from pyecharts import Bar

attr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
v1 = [23.0, 44.9, 57.0, 23.2, 25.6, 46.7, 35.6, 62.2, 32.6, 20.0, 36.4, 3.3]

bar = Bar("Sales of XPS in 2017(million $)")
bar.add("XPS", attr, v1)
bar
<div id="b43aec201a5a4a4986a28f23927294ec" style="width:800px;height:400px;"></div>
# 导入柱状图类
from pyecharts import Bar

attr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
v1 = [23.0, 44.9, 57.0, 23.2, 25.6, 46.7, 35.6, 62.2, 32.6, 20.0, 36.4, 33.3]
v2 = [22.6, 45.9, 59.0, 26.4, 28.7, 50.7, 75.6, 82.2, 48.7, 18.8, 36.0, 2.3]

bar = Bar("Bar chart", "Sales of XPS and Alienware in 2017(million $)")
bar.add("XPS", attr, v1, mark_line=["average"], mark_point=["max", "min"])
bar.add("Alienware", attr, v2, mark_line=["average"], mark_point=["max", "min"])
bar.render(path='Bar charts - Sales of XPS and Alienware in 2017(million $).html')
bar
<div id="6eb2a90ed5cb440ab61357311127095e" style="width:800px;height:400px;"></div>

add(name, x_axis, y_axis,
is_stack=False,
bar_category_gap=‘20%’, **kwargs)

name -> str
图例名称
x_axis -> list
x 坐标轴数据
y_axis -> list
y 坐标轴数据
is_stack -> bool
数据堆叠,同个类目轴上系列配置相同的 stack 值可以堆叠放置
bar_category_gap -> int/str
类目轴的柱状距离,当设置为 0 时柱状是紧挨着(直方图类型),默认为 ‘20%’

# 导入柱状图类
from pyecharts import Bar

attr = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
v1 = [23.0, 44.9, 57.0, 23.2, 25.6, 46.7, 35.6, 62.2, 32.6, 20.0, 36.4, 3.3]
v2 = [22.6, 45.9, 59.0, 26.4, 28.7, 50.7, 75.6, 82.2, 48.7, 18.8, 36.0, 2.3]

bar = Bar("Bar chart", "Sales of XPS and Alienware in 2017(million $)")
bar.add("XPS", attr, v1, mark_line=["average"], is_stack=True)
bar.add("Alienware", attr, v2, mark_line=["average"], is_stack=True)
bar.render(path='Bar charts - Sales of XPS and Alienware in 2017(million $).html')
bar
<div id="e72e9c19bd2d4fd59712a22a5804618f" style="width:800px;height:400px;"></div>

当我们类目名称比较长的时候,我们会做条形图

bar = Bar("x 轴和 y 轴交换")
bar.add("商家A", attr, v1)
bar.add("商家B", attr, v2, is_convert=True)
bar
<div id="9f1f877345da42f08943075420052ae0" style="width:800px;height:400px;"></div>
import random

attr = ["{}天".format(i) for i in range(30)]
v1 = [random.randint(1, 30) for _ in range(30)]
bar = Bar("Bar - datazoom - slider 示例", width=1000)
bar.add("", attr, v1, is_label_show=True, is_datazoom_show=True)
bar
<div id="25007f870ee0456e9bf36950aabd1c06" style="width:1000px;height:400px;"></div>

瀑布图

  • 适用场景:采用绝对值与相对值结合的方式,适用于表达数个特定数值之间的数量变化关系,最终展示一个累计值。
  • 优势:展示两个数据点之间的演变过程,还可以展示数据是如何累计的。
  • 劣势:没有柱状图、条形图的使用场景多。
from pyecharts import Bar

attr = ['IOS','Mac OS x','Android','Window 7', 'Window 8','Window 10','累计值']
v1 = [0, 100, 300, 650, 1450, 1650, 0]
v2 = [100, 200, 350, 800, 200, 200, 1850]
bar = Bar("过去一周用户操作系统偏好","瀑布图")
# 利用第一个 add() 图例的颜色为透明,即 'rgba(0,0,0,0)',并且设置 is_stack 标志为 True
bar.add("", attr, v1, label_color=['rgba(0,0,0,0)'], is_stack=True)
bar.add("", attr, v2, is_label_show=True, is_stack=True, label_pos='inside')
bar
<div id="5b372d4dcba849599cd982c0c25598ef" style="width:800px;height:400px;"></div>

直方图

import pandas as pd
import numpy as np

ages = np.random.normal(10,1,size=10000)
bins = np.arange(6,14,0.1)  # bins 必须单调递增
# 以bins每个元素做分割点,分箱
cats = pd.cut(ages, bins)
data = pd.value_counts(cats).sort_index()
min(ages),max(ages)
(6.307831760532157, 13.605225306256697)
# 导入柱状图类
from pyecharts import Bar

bar = Bar("直方图")
bar.add("", data.index, data.values, bar_category_gap=0)
bar
<div id="2a6535c5b883495ca7dcba48ac1e9d60" style="width:800px;height:400px;"></div>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值