Plotly条形图-根据正/负值更改颜色-python

2022-01-21 00:00:00 python plotly

问题描述

我有以下代码绘制条形图(1 系列),但如果净"值为正值,我需要将条形着色为蓝色,如果为负值,则将条形着色为红色:

将 pandas 导入为 pd导入 plotly.graph_objectsdf = pd.DataFrame({'网':[15,20,-10,-15],'日期':['07/14/2020','07/15/2020','07/16/2020','07/17/2020']})df['Date'] = pd.to_datetime(df['Date'])fig = go.Figure(data=[go.Bar(name='Net', x=df['Date'], y=df['Net'])])fig.update_layout(barmode='stack')图.show()

解决方案

你可以查看文档

I have the following code which plots a bar chart (1 series), but I need the bars to be coloured blue if the 'Net' value is positive, and red if its negative:

import pandas as pd
import plotly.graph_objects as go

df = pd.DataFrame({
     'Net':[15,20,-10,-15], 
     'Date':['07/14/2020','07/15/2020','07/16/2020','07/17/2020']
})

df['Date'] = pd.to_datetime(df['Date'])
fig = go.Figure(data=[go.Bar(name='Net', x=df['Date'], y=df['Net'])])
fig.update_layout(barmode='stack')
fig.show()

解决方案

You can check documentation here. Full code as following

import pandas as pd
import plotly.graph_objects as go
import numpy as np

# Data

df = pd.DataFrame({
     'Net':[15,20,-10,-15], 
     'Date':['07/14/2020','07/15/2020','07/16/2020','07/17/2020']
})

df['Date'] = pd.to_datetime(df['Date'])

## here I'm adding a column with colors
df["Color"] = np.where(df["Net"]<0, 'red', 'green')

# Plot
fig = go.Figure()
fig.add_trace(
    go.Bar(name='Net',
           x=df['Date'],
           y=df['Net'],
           marker_color=df['Color']))
fig.update_layout(barmode='stack')
fig.show()

相关文章