如何将色阶添加到破折号中的条形图 python

How to add colorscale to bar graph in dash python

我正在绘制一个每秒更新的条形图我想为其添加色阶。

import plotly.graph_objects as go

@app.callback(Output('my-graph', 'figure'),
              [Input('my-interval-component', 'n_intervals')])
def update_graph_soc(n):
    connection = sqlite3.connect(r'C:\Users\user\Desktop\database\newbase.db', )
    connection.execute('pragma journal_mode=wal')
    data = connection.cursor()
    latest = None
    try:
        data = connection.cursor()
        latest = (data.execute("""SELECT
                                    v1,v2,v3,v4
                                    SNO FROM sop where SNO ==(SELECT MAX([SNO]) FROM [sop])""").fetchall().__getitem__(0))
    except Exception as e:
        print(e)
    z = []
    values = go.Bar(
        x=['v1','v2','v3','v4'], y=latest)
    return {'data': [values], 'layout': go.Layout(title='graph',yaxis_title='values(in x)',
                                                  xaxis_title='sample: ' + str(int(latest[4])),colorscale='Viridis')}

我试图按照上面的方法来做,我将 Viridis 作为色标,但它不起作用。任何帮助将不胜感激 提前致谢。

@eliasdabbasPlotly Community Forum 中回答了这个问题:您需要将 colorscale 传递给 marker 参数字典而不是 layout:

values = go.Bar(
    x=['v1','v2','v3','v4'], 
    y=latest, 
    marker={'color': [i+1 for i,_ in enumerate(y)], 'colorscale': 'Viridis'}
)