python - 我们如何为 Plotly 条形图指定颜色?
问题描述
我有几行代码可以创建一个很棒的条形图。
import plotly.express as px
fig = px.bar(df, x="site_name", y="value", color="variable", title="2019 & 2020 Revenue vs. Expenses")
fig.show()
这是一些示例数据。
# Import pandas library
import pandas as pd
# initialize list of lists
data = [['14', '20 Hudson Yards_IB', 'revenue', '2651324.42'],
['5', '5 Camden Yards', 'revenue', '2772115.61'],
['12', 'PHO_SUNS', 'revenue', '2818249.28'],
['87', 'OSUMC--MAIN', 'expense', '4300628.21'],
['7', 'DA STADIUM', 'expense', '6452307.48'],
['99', '50 Midtown East', 'expense', '3534523.12']]
# Create the pandas DataFrame
df_result = pd.DataFrame(data, columns = ['index', 'site_name', 'variable', 'value'])
# print dataframe.
df_result
结果:
index site_name variable value
0 14 20 Hudson Yards_IB revenue 2651324.42
1 5 5 Camden Yards revenue 2772115.61
2 12 PHO_SUNS revenue 2818249.28
3 87 OSUMC--MAIN expense 4300628.21
4 7 DA STADIUM expense 6452307.48
5 99 50 Midtown East expense 3534523.12
该图表几乎正是我想要的,但我试图为两个变量获得两种特定的颜色。一个变量是“收入”,一个变量是“费用”。现在,使用上面显示的默认代码,我的图表是红色的收入和蓝色的支出。我真正想做的是将“收入”设为绿色,将“费用”设为红色。我该如何控制这个?
解决方案
使用color_discrete_sequence
and 指定顺序,使用category_orders
fig = px.bar(df, x="site_name", y="value", color="variable",
color_discrete_sequence=["green","red"],
category_orders={"variable":["Revenue","Expenses"]},
title="2019 & 2020 Revenue vs. Expenses")
或使用color_discrete_map
fig = px.bar(df, x="site_name", y="value", color="variable",
color_discrete_map={"Revenue": "green", "Expenses":"red"},
category_orders={"variable":["Revenue","Expenses"]},
title="2019 & 2020 Revenue vs. Expenses")
推荐阅读
- java - Spring MVC:没有为依赖找到类型 [org.hibernate.SessionFactory] 的合格 bean
- amazon-web-services - Visual Studio Code:尝试为 AWS Ec2 实例设置远程调试?
- python - Python Pandas CSV 循环
- go - 在 Golang 中处理 nil 和错误的惯用方法是什么?
- python - 为什么此列表不起作用...“TypeError:列表索引必须是整数或切片,而不是 str”
- javascript - 异步/等待创建的方法 - Vue2
- bing-maps - 使用四键检索给定半径内的所有点
- amazon-web-services - dynamodb 和 dynamodb 流有什么区别?
- python - Numpy 一维数组:默认情况下是行矩阵还是列矩阵?
- ios - 如何在 2 个 ViewControllers Objective-C 上添加 UIView