python - 有没有办法将一列十六进制代码传递到 Matplotlib/seaborn?
问题描述
鉴于我有一个 df 有 4 列,这样:
x = [1,3,6,8]
y = [7,4,8,7]
names = ['eggs','eggs','spam','spam']
hex = ['#76BB76','#76BB76','#7B8BFC','#7B8BFC']
其中名称中的每个元素在“十六进制”列中都有相应的代码。
到目前为止,我已经能够使用名称列对点进行分组,例如:
fg = seaborn.FacetGrid(data=df, hue='names')
fg.map(plt.scatter, 'x', 'y').add_legend()
在这里,我可以使用“十六进制”而不是“名称”,因为它们的分组方式相同。
但是,这会生成一个图,我可以在其中使用现有的 cmap(例如 cmap='viridis')为点着色。我想为这些点分配十六进制列中的自定义颜色,因为这将改善绘图的外观。在 matplotlib/seaborn 中是否有一种简单的方法可以做到这一点?
解决方案
在这种情况下,我只会使用scatter()
带有c
参数的 matplotlib:
fig, ax = plt.subplots()
for name, data in df.groupby('names'):
ax.scatter(data.x, data.y, c=data.hex, label=name)
ax.legend(title='name')
推荐阅读
- angular6 - 是否可以在 ionic 4 中使 Tabs 可滑动?
- perl - 使用 perl 的 qx{} / `...` 运算符和参数列表
- c# - 如何通过将其与用户输入进行比较来搜索 int 数组与字符串数组
- groovy - 在 Groovy 中输入提示多维地图
- model - 如何使用模拟获得/确定该模型中的最佳组合(s,S)?
- c# - 在 Windows 10 IOT 上使用 I2C 从传感器读取问题
- r - 使用 R 进行数据集成
- python - 将数据复制到剪贴板管理器同上
- amazon-web-services - 使用 AWS Glue 加快开发周转时间
- javascript - 如何从添加到 html 页面的动态元素中获取数据?