我有两个(非线性)键索引的数据。 我正在尝试使用一个轴上的每个键创建数据的散点,并使用一个颜色条来表示我的数据值。
colormesh的问题是我的数据看起来像是假设4点,(1,10,1st值),(1,20,2nd值),(2,13,3rd值)和(2) ,第14,4个值),所以我不能独立地变化每个键。此外,有些区域没有数据应保持白色。
我是matplotlib的新手,我还没有找到任何似乎能够做到这一点的功能。
我假设通过固定一些数值范围手动创建色阶,然后做一个散点图可以工作,但它似乎不优雅和不精确。
这个问题的最佳方法是什么,或者我错过的库中是否有相关的matplotlib函数/选项?
答案 0 :(得分:1)
为简单起见,我假设您可以获取第一个密钥的列表或数组,并将其称为x
,第二个密钥并将其称为y
,并将其称为value
并将其调用{ {1}}。
假设这样,您可以结合使用seaborn和matplotlib来实现您所寻找的目标:
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
x, y, value = np.random.rand(3, 50)
color_map = sns.dark_palette((0.5, 0.75, 0.9), as_cmap=True)
plot_handle, axis = plt.subplots()
scatter_points = axis.scatter(x, y, c=value, cmap=color_map)
plot_handle.colorbar(scatter_points)
# possibly need plt.show() if using interactively
# or else use matplotlib save figure options.
这会产生以下示例图:
您可以查看sns.palettes
中提供的各种颜色地图选项(允许as_cmap
最简单的颜色地图选项),包括一些不需要配置的颜色地图选项颜色范围,如sns.cubehelix_palette
。