Plotly条形图-根据正/负值更改颜色-python
问题描述
我有以下代码绘制条形图(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()
相关文章