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

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}

我有上面的代码,在这里我想介绍使用“标记”的颜色编码,这样条形图的颜色应该取决于它的值。随着值的增加,颜色也应该改变。


幕布斯7119047
浏览 206回答 1
1回答

慕斯王

我假设您正在寻找这样的东西:情节 1:情节表达和在此处输入图像描述可以像这样轻松制作:import plotly.express as pxdata = 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 gofig = 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 gofig = 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 gofig = 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()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python