我正在尝试创建不同的子图,并且我希望每个子图具有不同的背景色。我正在使用Plotly,这使事情变得有些困难。任何的想法?我认为matplot中的等效项是face_color或类似的东西。
fig = make_subplots(rows=1, cols=2)
fig.add_trace(
go.Scatter(
x=list(range(sample_points)),
y=data_gx.iloc[scene],
name='X-axis',
line=dict(color='green', width=2)
),
row=1, col=1
)
fig.add_trace(
go.Scatter(
x=list(range(sample_points)),
y=data_ax.iloc[scene],
name='X-axis',
line=dict(color='green', width=2)
),
row=1, col=2
)
您可以使用set_facecolor
:
ax.set_facecolor('xkcd:salmon')
这将为所有子图设置背景色:
fig.update_layout(plot_bgcolor='steelblue')
图:
不幸的是,您似乎仍然无法为不同的子图设置different background colors:
背景颜色在图形的布局中设置:plot_bgcolor ='rgb(245,245,240)'。目前您无法更改特定子图的背景。
完整代码:
# imports
from plotly.subplots import make_subplots
import plotly.graph_objects as go
import pandas as pd
import numpy as np
# data
df = pd.DataFrame({'Index': {0: 1.0,
1: 2.0,
2: 3.0,
3: 4.0,
4: 5.0,
5: 6.0,
6: 7.0,
7: 8.0,
8: 9.0,
9: 10.0},
'A': {0: 15.0,
1: 6.0,
2: 5.0,
3: 4.0,
4: 3.0,
5: 2.0,
6: 1.0,
7: 0.5,
8: 0.3,
9: 0.1},
'B': {0: 1.0,
1: 4.0,
2: 2.0,
3: 5.0,
4: 4.0,
5: 6.0,
6: 7.0,
7: 2.0,
8: 8.0,
9: 1.0},
'C': {0: 12.0,
1: 6.0,
2: 5.0,
3: 4.0,
4: 3.0,
5: 2.0,
6: 1.0,
7: 0.5,
8: 0.2,
9: 0.1}})
# set up plotly figure
fig = make_subplots(1,2)
# add first bar trace at row = 1, col = 1
fig.add_trace(go.Bar(x=df['Index'], y=df['A'],
name='A',
marker_color = 'green',
opacity=0.4,
marker_line_color='rgb(8,48,107)',
marker_line_width=2),
row = 1, col = 1)
# add first scatter trace at row = 1, col = 1
fig.add_trace(go.Scatter(x=df['Index'], y=df['B'], line=dict(color='red'), name='B'),
row = 1, col = 1)
# add first bar trace at row = 1, col = 2
fig.add_trace(go.Bar(x=df['Index'], y=df['C'],
name='C',
marker_color = 'green',
opacity=0.4,
marker_line_color='rgb(8,48,107)',
marker_line_width=2),
row = 1, col = 2)
fig.update_layout(plot_bgcolor='lightblue')
fig.show()