欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > Plotly绘制柱状图

Plotly绘制柱状图

2025/4/27 16:56:04 来源:https://blog.csdn.net/xiaoxiaochunmei/article/details/143190574  浏览:    关键词:Plotly绘制柱状图

plotly是一款开源的python库,用于创建可视化图表,支持多种图标类型,如折线图、柱状图、散点图、饼图等。
plotly提供了plotly.graph_objectsplotly.express两种主要的API用于创建图表

  • plotly.graph_objects用于创建复杂的自定义图表
  • plotly.express适合创建常见图表
  • 安装导入
    在python环境中安装 pip install plotly
    在py文件中导入 import plotly.express as px import plotly.graph_objects as go
    plotly.express一般简称px
    plotly.graph_objects一般简称go

使用Express绘制

使用内置数据举例
在这里插入图片描述

# 设置输出窗口显示的最多列数,超出部分用...显示
pd.set_option('display.max_columns',100)
# 设置输出窗口的宽度,每行数据超出部分被换行
pd.set_option('display.width',1000)
data = px.data.gapminder().query("country == 'Afghanistan'")
print(data)
fig = px.bar(data,y='year',x='gdpPercap',text='gdpPercap',orientation='h',color='gdpPercap')
fig.show()

在这里插入图片描述

柱状图有四种显示模式:
⚪ stack:堆叠–上下堆叠
⚪ group:分组–并排显示
⚪ overlay:覆盖
⚪ relative(默认):相对
在这里插入图片描述

data = px.data.tips()
# print(data)
fig = px.bar(data,x='sex',y='total_bill',color='smoker',barmode='group',facet_col='time',facet_row='day')
fig.show()

在这里插入图片描述

使用graph_objects绘制

data = {"name":['xiaoming','lihong','sm3','gon1'],"age":[25,23,22,36]}
fig.add_trace(go.Bar(x=data['name'],y=data['age']))
fig.update_layout(width=600,height=600,title='年龄分布',xaxis=dict(title='姓名'),yaxis={'title':'age'})
fig.show()

在这里插入图片描述

# 替换为条形图
fig.add_trace(go.Bar(y=data['name'],x=data['age'],orientation='h'))

在这里插入图片描述

# 设置基准位置
fig.add_trace(go.Bar(x=data['name'],y=data['age'],base=np.array(data['age']) * (-1),marker_color='crimson'))

在这里插入图片描述

绘制子图

使用make_subplots绘制子图,将画布分为多个区域,每个区域展示自己的图像,各自的坐标轴、标题等都是独立的。

import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots
data = {'xiaoming': [20, 33], 'lihong': [22, 17], 'sm3': [44, 20]}
df = pd.DataFrame(data)
math = go.Bar(x=df.keys(),y=df.values[0])
chinese = go.Bar(x=df.keys(),y=df.values[1])
# 创建包含一行两列的子图
fig = make_subplots(rows=1,cols=2,subplot_titles=['数学成绩','语文成绩'])
# 在第一行第一列画图
fig.add_trace(math,1,1)
# 在第一行第二列画图
fig.add_trace(chinese,1,2)
# 整个画布的宽高
fig.update_layout(width=1200,height=600)
fig.show()

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词