【Python百日进阶-数据分析】Day129 - plotly柱状图(条形图):px.bar()实例

四、实例

4.1 Plotly Express条形图

Plotly Express是 Plotly 的易于使用的高级界面,它对各种类型的数据进行操作并生成易于样式化的图形。
使用px.bar,DataFrame 的每一行都表示为一个矩形标记。要将多个数据点聚合到同一个矩形标记中,请参阅直方图文档。

4.1.1 加拿大人口

import plotly.express as px
data_canada = px.data.gapminder().query("country == 'Canada'")
fig = px.bar(data_canada, x='year', y='pop')
fig.show()

在这里插入图片描述

4.1.2 一维数据的条形图

长格式数据每个观察值有一行,每个变量有一列。这适用于存储和显示多变量数据,即维度大于2的数据。这种格式有时被称为“tidy整洁”。
在这里插入图片描述

在这里插入图片描述

4.1.3 多维数据条形图

宽格式数据的第一个变量的每个值有一行,第二个变量的每个值有一列。这适用于存储和显示二维数据。
在这里插入图片描述

import plotly.express as px

wide_df = px.data.medals_wide()

fig = px.bar(wide_df, x="nation", y=["gold", "silver", "bronze"], title="宽格式数据")
fig.show()

在这里插入图片描述

4.1.4 彩条

可以使用color关键字参数自定义条形图,例如使用连续颜色(如下所示)或离散颜色(如上所示)。

import plotly.express as px

df = px.data.gapminder().query("country == 'Canada'")
fig = px.bar(df, x='year', y='pop',
             hover_data=['lifeExp', 'gdpPercap'], color='lifeExp',
             labels={'pop':'population of Canada'}, height=400)
fig.show()

在这里插入图片描述

import plotly.express as px

df = px.data.gapminder().query("continent == 'Oceania'")
fig = px.bar(df, x='year', y='pop',
             hover_data=['lifeExp', 'gdpPercap'], color='country',
             labels={'pop':'population of Canada'}, height=400)
fig.show()

在这里插入图片描述

4.1.5 堆叠与分组条形图

当几行共享相同的值x(此处为女性或男性)时,默认情况下,矩形会相互堆叠。

import plotly.express as px
df = px.data.tips()
fig = px.bar(df, x="sex", y="total_bill", color='time')
fig.show()

在这里插入图片描述
可以使用barmode参数将默认的堆叠条形图行为更改为分组(也称为聚类):

import plotly.express as px
df = px.data.tips()
fig = px.bar(df, x="sex", y="total_bill",
             color='smoker', barmode='group',
             height=400)
fig.show()

在这里插入图片描述

4.1.6 聚集成单色条

如上所述px.bar()将导致每行输入绘制一个矩形。这有时会导致上面示例中的条纹外观。要将这些矩形组合成每种颜色每种位置,可以使用px.histogram(),它有自己的详细文档页面。
px.bar()和px.histogram()在调用签名中几乎可以互换,以便能够在聚合和分解条形图表示之间切换。

import plotly.express as px
df = px.data.tips()
fig = px.histogram(df, x="sex", y="total_bill",
             color='smoker', barmode='group',
             height=400)
fig.show()

在这里插入图片描述
px.histogram()默认情况下将通过求和来聚合y值,但histfunc参数可用于将其设置为avg,以创建有时被称为“条形图”的东西,它总结了数据集的中心趋势,而不是直观地表示数据集的整体。
警告:当使用“sum”或“count”以外的histfuncs时,使用“group”以外的barmode可能会产生误导,因为堆叠的条形实际上代表条形高度的总和,求和平均值很少是合理的可视化方式。

import plotly.express as px
df = px.data.tips()
fig = px.histogram(df, x="sex", y="total_bill",
             color='smoker', barmode='group',
             histfunc='avg',
             height=400)
fig.show()

在这里插入图片描述

4.1.7 带文本的条形图

  • v5.5中新增。
  • 可以使用text_auto参数将文本添加到栏中。将其设置为True将在条形图上显示值,将其设置为d3格式的格式化字符串将控制输出格式。
import plotly.express as px
df = px.data.medals_long()

fig = px.bar(df, x="medal", y="count", color="nation", text_auto=True)
fig.show()

在这里插入图片描述
text参数可用于在条形图上显示任意文本:

import plotly.express as px
df = px.data.medals_long()

fig = px.bar(df, x="medal", y="count", color="nation", text="nation")
fig.show()

在这里插入图片描述
默认情况下,Plotly将缩放和旋转文本标签,以最大限度地增加可见标签的数量,从而在同一图形中产生各种文本角度、大小和位置。可以使用textfont、textposition和textangle跟踪属性来控制这些。
以下是默认行为的示例:

import plotly.express as px

df = px.data.gapminder().query("continent == 'Europe' and year == 2007 and pop > 2.e6")
fig = px.bar(df, y='pop', x='country', text_auto='.2s',
            title="默认值:各种文本大小、位置和角度")
fig.show()

在这里插入图片描述
以下是相同的数据,文本格式变化较小。请注意,textfont_size将设置最大大小。布局。uniformtext属性可用于确保所有文本标签的大小相同。有关详细信息,请参阅有关文本和注释的文档。
在下面的示例中,cliponaxis属性设置为False,以确保最高条上的外部文本可以在打印区域之外渲染。

import plotly.express as px

df = px.data.gapminder().query("continent == 'Europe' and year == 2007 and pop > 2.e6")
fig = px.bar(df, y='pop', x='country', text_auto='.2s',
            title="受控文本大小、位置和角度")
fig.update_traces(textfont_size=12, textangle=0, textposition="outside", cliponaxis=False)
fig.show()

在这里插入图片描述

4.1.8 填充图案

  • v5.0中新增。
import plotly.express as px
df = px.data.medals_long()

fig = px.bar(df, x="medal", y="count", color="nation",
             pattern_shape="nation", pattern_shape_sequence=[".", "x", "+"])
fig.show()

在这里插入图片描述

4.1.9 分面子图

使用关键字参数facet_row(resp.facet_col)创建facetted子地块,其中不同的行(resp.columns)对应于facet_row中指定的数据帧列的不同值。

import plotly.express as px
df = px.data.tips()
fig = px.bar(df, x="sex", y="total_bill", color="smoker", barmode="group",
             facet_row="time", facet_col="day",
             category_orders={"day": ["Thur", "Fri", "Sat", "Sun"],
                              "time": ["Lunch", "Dinner"]})
fig.show()

在这里插入图片描述

4.1.10 带Plotly Express的基本水平条形图

import plotly.express as px
df = px.data.tips()
fig = px.bar(df, x="total_bill", y="day", orientation='h')
fig.show()

在这里插入图片描述

4.1.11 配置水平条形图

在本例中,一列用于为条形图着色,我们将其他列中的信息添加到悬停数据中。

import plotly.express as px
df = px.data.tips()
fig = px.bar(df, x="total_bill", y="sex", color='day', orientation='h',
             hover_data=["tip", "size"],
             height=400,
             title='餐厅账单')
fig.show()

在这里插入图片描述

4.1.12 Dash中的条形图

Dash是使用绘图在Python中构建分析应用程序的最佳方式。要运行下面的应用程序,请运行pip install dash

import dash
from dash import html, dcc
from dash.dependencies import Input, Output
import plotly.express as px

df = px.data.tips()
days = df.day.unique()

app = dash.Dash(__name__)

app.layout = html.Div([
    dcc.Dropdown(
        id="dropdown",
        options=[{"label": x, "value": x} for x in days],
        value=days[0],
        clearable=False,
    ),
    dcc.Graph(id="bar-chart"),
])

@app.callback(
    Output("bar-chart", "figure"),
    [Input("dropdown", "value")])
def update_bar_chart(day):
    mask = df["day"] == day
    fig = px.bar(df[mask], x="sex", y="total_bill",
                 color="smoker", barmode="group")
    return fig

app.run_server(debug=True, port=8052)

在这里插入图片描述

plotly.express.bar(data_frame=None, x=None, y=None, color=None, pattern_shape=None, facet_row=None, facet_col=None, facet_col_wrap=0, facet_row_spacing=None, facet_col_spacing=None, hover_name=None, hover_data=None, custom_data=None, text=None, base=None, error_x=None, error_x_minus=None, error_y=None, error_y_minus=None, animation_frame=None, animation_group=None, category_orders=None, labels=None, color_discrete_sequence=None, color_discrete_map=None, color_continuous_scale=None, pattern_shape_sequence=None, pattern_shape_map=None, range_color=None, color_continuous_midpoint=None, opacity=None, orientation=None, barmode='relative', log_x=False, log_y=False, range_x=None, range_y=None, text_auto=False, title=None, template=None, width=None, height=None)
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
python数据分析:基于plotly的动态可视化绘图.pdf》是一本关于使用Python进行数据分析的书籍,主要介绍了如何利用plotly库进行动态可视化绘图。 数据分析是通过收集、清洗、加工、分析和呈现大量数据来揭示其中潜在规律和洞察的过程。而可视化则是将数据以图表等可视化方式展示,帮助我们更直观地理解和解读数据。plotlyPython中一款功能强大的可视化库,它可以生成各种交互式图表,支持动态可视化和在线展示。 《python数据分析:基于plotly的动态可视化绘图.pdf》通过实例演示了如何使用plotly库进行数据分析中常用的可视化操作,包括折线图、柱状图、散点图、饼图、地理图等。使用plotly库可以轻松创建动态可视化图表,通过调整参数和设置动画效果,可以让图表更生动、更具吸引力。 动态可视化是一种通过动态变化的图表来展示数据的方法。它可以帮助我们更好地理解数据的变化趋势和规律,发现数据中隐藏的特征和模式。在数据分析中,动态可视化常用于时间序列数据、实时数据等领域,能够直观地展示数据的变化过程和动态趋势。 综上所述,《python数据分析:基于plotly的动态可视化绘图.pdf》是一本介绍如何使用plotly库进行动态可视化绘图的书籍,通过实例演示了使用plotly库创建各种动态可视化图表的方法和技巧,对于对数据分析和可视化有兴趣的人来说,是一本不可多得的学习资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

岳涛@心馨电脑

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

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

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

打赏作者

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

抵扣说明:

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

余额充值