python - 根据图中未包含的值设置 Seaborn 条形颜色
问题描述
df
我有一个带有列x
(分类)y
、 和z
(两个浮点数)的熊猫数据框。
这是我的条形图。
sns.barplot(data=df, x=x, y=y)
如何根据z
列的值为条形设置调色板?我想设置一个 Matplotlib 风格的调色板,比如magma
or RdYlBu
。基本上,就像设置hue
参数一样,但是带有一个标量变量。
提前致谢!
解决方案
我不确定在 seaborn 中是否有办法做到这一点。但通常直接使用 matplotlib 也可以。
import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({"x" : list("ABCDEFGH"),
"y" : [3,4,5,2,1,6,3,4],
"z" : [4,5,7,1,4,5,3,4]})
norm = plt.Normalize(df.z.min(), df.z.max())
cmap = plt.get_cmap("magma")
plt.bar(x="x", height="y", data=df, color=cmap(norm(df.z.values)))
plt.show()
如果您的“分类”列包含熊猫类别,而不是简单的字符串,您首先需要将其转换为df["x"] = df["x"].astype(str)
.
推荐阅读
- oracle - 在where子句中用or/nvl合并数据,有什么好处?
- reactjs - 如何将数据发送到具有多个嵌套数组的 api 反应
- sql - 如何将特定行选择到新表中?
- c# - Powershell vs C# EscapeUriString 不同的结果
- javascript - JQuery缓慢的图像变化
- javascript - Angular - 在组件之间共享图像
- javascript - 程序需要在点击时查找在父框中输入的所有父编号的后继者的计数
- ios - CKUserIdentity userRecordID 属性是可选的。为什么?
- javascript - Greasemonkey 禁用脚本
- sql - 获取选择查询可以返回的行数