首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cmap是如何在海运中工作的,以及如何更改binning?

cmap是如何在海运中工作的,以及如何更改binning?
EN

Stack Overflow用户
提问于 2020-03-03 12:12:26
回答 1查看 2.4K关注 0票数 2

这个问题的灵感来自于R中的pheatmap中的中断。问题是,如果我能定义如何“粗糙”,如何连续/离散我的着色和装订是在海运的热图。我找到了一种使用cmap和所用颜色的方法。海上热图图的离散图例)。然而,我不知道如何完成这些颜色组的任务。

因此,的问题是,如果我使用cmap并强制海运只使用一个离散的colours=bins集,那么数据如何绑定呢?我如何手动设置它?例如:在R的情况下,我可以按100的步数将断点设置为0到800,并将其传递给“突破口”参数。

breaksList = seq(0,800,by = 100)

如果我的刻度是线性的,那么使用cmap和颜色数是相当简单的,但是如果我想要我的bins=colorbar对数,或者只是,而不是等距的,我该怎么做呢?

为了给出一个具体的例子,让我举一个飞行数据集的例子。在左边是原来的默认情节,在右边,我选择5种颜色有5个垃圾箱。那么如何定义这些垃圾箱的边缘呢?我能把它们重置吗?这样我就有了。垃圾箱0-200,200-300,300-400,400- 600,600以上?(我故意用不平等的垃圾桶来表达我的意思。)

代码语言:javascript
复制
# choose 5 colours to create 5 bins
cmap = sns.color_palette('rocket', n_colors=5)

# run this without the cmap argument to get the first image
flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
ax = sns.heatmap(flights, cmap = cmap)

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-03 14:52:23

似乎在海运中存在一个错误,使下面的想法无法正常工作,因此回到纯粹的matplotlib:

代码语言:javascript
复制
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors
import seaborn as sns
# choose 5 colours to create 5 bins
colors = sns.color_palette('rocket', 5)
levels = [0, 200, 300, 400, 600]
cmap, norm = matplotlib.colors.from_levels_and_colors(levels, colors, extend="max")

flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")

fig, ax = plt.subplots()
im = ax.imshow(flights.values, cmap = cmap, norm=norm)
ax.set(xticks=range(flights.shape[1]), yticks=range(flights.shape[0]),
       xticklabels=flights.columns, yticklabels=flights.index)
ax.tick_params(axis="x", rotation=90)
fig.colorbar(im, ax=ax, spacing="propotional")

plt.show()

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60506990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档