我正在尝试开始使用Dash,我有一个简单的问题。我有一个数据表
Index, Product, Customer_Age, Revenue
1, A, 12, 10
2, B, 99, 12
等
我想把每个产品的收入画成直方图。然而,我想有酒吧分为不同的颜色为不同的年龄组,说组10。我如何做到这一点?目前,我与
from dash import Dash, html, dash_table, dcc
import plotly.express as px, pandas as pd
data = pd.read_csv('data.csv')
app = Dash(__name__)
app.layout = html.Div([
dcc.Graph(figure=px.histogram(data, x='Product', y='Revenue', histfunc='sum', color='Customer_Age')),
])
if __name__ == '__main__':
app.run(debug=True)
每个年龄段都有不同的颜色此外,颜色是相当随机的,而不是一个很好的连续的颜色序列。有没有一种优雅的方式来实现我想要的?
1条答案
按热度按时间xytpbqjk1#
这里是一个示例解决方案,除了直方图之外,还使用条形图来可视化分组数据
在您的特定用例中,由于您对类别的强调,使用条形图而不是直方图来可视化数据可能更有意义。通常,直方图显示来自一个 * 连续 (或至少有效地被视为连续)数值类别(变量)的一系列(有序样本)值的分箱分布。所以,可视化你所描述的颜色编码的年龄分组分布有点复杂。( 要显示多少个直方图?每种颜色一个?* )
在这个例子中,我计算了收入的总和,以条形图的子图形式显示,每个产品一个子图,条形图按年龄段分组,时间间隔设置为10年。当应用程序中的任何栏悬停在上方时,子图下方的虚线表将更新以仅显示悬停的数据。
*下面,我修改了这个演示应用程序,以额外( 响应每个用户悬停交互 * [* 即,通过回调触发 *]**)更新单个直方图,然后显示数据的 * 分布 *,当前悬停的条形表示对这些值计算的 * 总和 *。
例如,在一个示例中,
结果: