plotly绘图——条形图

介绍

plotly是一个易于使用,功能强大的python绘图库,用于构建可交互式的图表(可以自行运行后使用鼠标拖拽图片试试),本系列文章将介绍plotly绘制各种类型图的方法,本文将介绍——条形图

条形图

基础条形图

代码解释

  • data_canada = px.data.gapminder().query("country == 'Canada'")
    这一行代码首先从Plotly库提供的gapminder数据集中筛选出与加拿大相关的数据。gapminder数据集包含了多个国家多年的经济和健康指标。使用.query()方法和条件字符串"country == ‘Canada’"来选择数据集中所有country列值为’Canada’(加拿大)的行,结果存储在变量data_canada中。
  • fig = px.bar(data_canada, x='year', y='pop')
    使用px.bar()函数创建一个条形图。data_canada是筛选后的数据集,x='year’指定了横轴使用数据集中的year列,即年份,y='pop’指定了纵轴使用数据集中的pop列,即人口数量。这个条形图将展示加拿大人口在不同年份的变化情况。
import plotly.express as px
data_canada = px.data.gapminder().query("country == 'Canada'")
fig = px.bar(data_canada, x='year', y='pop')
fig.show()

在这里插入图片描述

圆润条形图

代码解释

  • df = data.medals_wide()
    这一行代码调用了一个函数(可能是一个自定义函数或者来自某个模块的函数),该函数返回了一个DataFrame df,其中包含了国家(nation)和它们分别获得的金牌(gold)、银牌(silver)和铜牌(bronze)的数量。

  • fig = go.Figure()
    这一行代码创建了一个Plotly的Figure对象,这个对象将用来存储和展示数据以及图表的布局设置。go.Figure是Plotly库中用于创建图表的起点。
    data=[ … ]

  • 在Figure对象中,data参数是一个列表,包含了图表的数据层。在这个例子中,列表中包含了三个go.Bar对象,每个对象代表一种奖牌类型(金、银、铜)的数据。

  • go.Bar(x=df.nation, y=df.gold, name="Gold")
    这是列表中的第一个go.Bar对象,它创建了一个条形图来表示金牌数据。x参数指定了条形图的横轴数据(国家名称),y参数指定了纵轴数据(金牌数量),name参数为这个数据层设置了名称(“Gold”),这将在图例中显示。

  • go.Bar(x=df.nation, y=df.silver, name="Silver")
    类似于上面的go.Bar对象,这个对象用于表示银牌数据。

  • go.Bar(x=df.nation, y=df.bronze, name="Bronze")
    同样,这个对象用于表示铜牌数据。

  • layout=dict(barcornerradius=15),
    layout参数是一个字典,用于设置图表的布局属性。在这个例子中,barcornerradius=15设置了条形图角落的圆角半径为15像素,这会让条形看起来更加圆润。

import plotly.graph_objects as go
from plotly import data

df = data.medals_wide()

fig = go.Figure(
    data=[
        go.Bar(x=df.nation, y=df.gold, name="Gold"),
        go.Bar(x=df.nation, y=df.silver, name="Silver"),
        go.Bar(x=df.nation, y=df.bronze, name="Bronze"),
    ],
    layout=dict(
        barcornerradius=15,
    ),
)

fig.show()

在这里插入图片描述

彩色样式条形图

代码解释

  • 定义年份列表 years:
    years 是一个包含从1995年到2012年的年份的列表。
    创建一个空的 Figure 对象:

  • fig = go.Figure() 创建了一个Plotly的Figure对象,用于存储图表的数据和布局设置。
    向 Figure 对象添加两个数据层(Trace):
    第一个 Trace 使用 go.Bar 创建了一个条形图,表示“Rest of world”的塑料废料出口量。x 参数设置了横轴为年份列表 years,y 参数设置了纵轴为对应的出口量数据,name 参数为数据层设置了名称,并使用 marker_color 设置了条形的颜色。
    第二个 Trace 同样使用 go.Bar 创建了一个条形图,表示“China”的塑料废料出口量,设置了相同的参数,但有不同的出口量数据和条形颜色。
    更新 Figure 的布局(update_layout):

  • title=‘US Export of Plastic Scrap’ 设置了图表的标题。
    xaxis_tickfont_size=14 和 yaxis.tickfont_size=14 分别设置了横轴刻度标签和纵轴刻度标签的字体大小。
    yaxis.title=‘USD (millions)’ 和 yaxis.titlefont_size=16 设置了纵轴标题及其字体大小。
    legend 字典设置了图例的位置、背景颜色和边框颜色。
    barmode=‘group’ 设置了条形图的模式为分组堆叠,即相同位置的条形堆叠在一起。
    bargap=0.15 设置了相邻位置坐标的条形之间的间隙。
    bargroupgap=0.1 设置了同一位置坐标的条形之间的间隙。

import plotly.graph_objects as go

years = [1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
         2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012]

fig = go.Figure()
fig.add_trace(go.Bar(x=years,
                y=[219, 146, 112, 127, 124, 180, 236, 207, 236, 263,
                   350, 430, 474, 526, 488, 537, 500, 439],
                name='Rest of world',
                marker_color='rgb(55, 83, 109)'
                ))
fig.add_trace(go.Bar(x=years,
                y=[16, 13, 10, 11, 28, 37, 43, 55, 56, 88, 105, 156, 270,
                   299, 340, 403, 549, 499],
                name='China',
                marker_color='rgb(26, 118, 255)'
                ))

fig.update_layout(
    title='US Export of Plastic Scrap',
    xaxis_tickfont_size=14,
    yaxis=dict(
        title='USD (millions)',
        titlefont_size=16,
        tickfont_size=14,
    ),
    legend=dict(
        x=0,
        y=1.0,
        bgcolor='rgba(255, 255, 255, 0)',
        bordercolor='rgba(255, 255, 255, 0)'
    ),
    barmode='group',
    bargap=0.15, # gap between bars of adjacent location coordinates.
    bargroupgap=0.1 # gap between bars of the same location coordinate.
)
fig.show()

在这里插入图片描述

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值