为了账号安全,请及时绑定邮箱和手机立即绑定

Plotly:如何使用 Python 对 plotly 图形对象条形图进行颜色编码?

Plotly:如何使用 Python 对 plotly 图形对象条形图进行颜色编码?

幕布斯7119047 2022-11-29 15:26:14
def update_graph_bar(named_count,**kwargs):traces = list()df = pd.DataFrame(list(Message.objects.all().values()))available_indicators = list(df['content'].unique())for t in available_indicators:    traces.append(go.Bar(        x=[t],        y=[df[df['content']==t]['timestamp'].count()],        name='{}'.format(t),text=[df[df['content']==t]['timestamp'].count()],        textposition='auto'        ))layout = plotly.graph_objs.Layout(barmode='group',paper_bgcolor='#00FFFF',    plot_bgcolor='rgba(0,0,0,0)',)return {'data': traces,      'layout': layout}我有上面的代码,在这里我想介绍使用“标记”的颜色编码,这样条形图的颜色应该取决于它的值。随着值的增加,颜色也应该改变。
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

我假设您正在寻找这样的东西:


情节 1:情节表达和


在此处输入图像描述


可以像这样轻松制作:


import plotly.express as px

data = px.data.gapminder()


data_canada = data[data.country == 'Canada']

fig = px.bar(data_canada, x='year', y='pop',

             hover_data=['lifeExp', 'gdpPercap'], color='lifeExp',

             labels={'pop':'population of Canada'}, height=400)

fig.show()

您可以轻松地将这种方法应用于 plotly.graph_objects 以获得:


图 2: go.Bar()和'viridis'


在此处输入图像描述


代码 2:


import plotly.graph_objects as go


fig = go.Figure()


x=[1,2,3]

y=[4,5,6]

z=[12,24,48]


fig.add_trace(go.Bar(x=x, y=y,

                     marker=dict(color = z,

                     colorscale='viridis')))


fig.show()

您甚至可以应用自己的自定义色标:


图 3:自定义颜色


在此处输入图像描述


代码 3:


import plotly.graph_objects as go


fig = go.Figure()


x=[1,2,3]

y=[4,5,6]

z=[12,24,48]


customscale=[[0, "rgb(255, 0, 0)"],

            [0.1, "rgb(255, 0, 0)"],

            [0.9, "rgb(0, 0, 255)"],

            [1.0, "rgb(0, 0, 255)"]]


fig.add_trace(go.Bar(x=x, y=y,

                     marker=dict(color = z,

                     colorscale=customscale)))


fig.show()

在code 3将颜色映射到变量的相对大小时,code 4将向您展示如何将颜色映射到具有指定阈值的绝对值:


图 4:由变量的绝对值分配的颜色


在此处输入图像描述


代码 4:


import plotly.graph_objects as go


fig = go.Figure()


x=[1,2,3]

y=[25,75, 110]

z=[12,24,48]


def SetColor(y):

        if(y >= 100):

            return "red"

        elif(y >= 50):

            return "yellow"

        elif(y >= 0):

            return "green"


fig.add_trace(go.Bar(x=x, y=y,

                     marker=dict(color = list(map(SetColor, y)))))


fig.show()


查看完整回答
反对 回复 2022-11-29
  • 1 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号