相关疑难解决方法(0)

修正matplotlib colorbar ticks

我在一个等值线图旁边放了一个彩条.因为绘制的数据是离散的而不是连续的值,所以我使用了一个LinearSegmentedColormap(使用scipy cookbook中的配方),我用我的最大计数值+1初始化,以显示0的颜色.但是,我现在有两个问题:

在此输入图像描述

  1. 刻度标签间距不正确(除了5或更多或更少) - 它们应位于它们识别的颜色的中间; 即0 - 4应向上移动,6 - 10应向下移动.

  2. 如果我初始化colorbar drawedges=True,以便我可以设置其dividers属性,我得到这个:

在此输入图像描述

我正在创建我的色彩映射和颜色条:

cbmin, cbmax = min(counts), max(counts)
# this normalises the counts to a 0,1 interval
counts /= np.max(np.abs(counts), axis=0)
# density is a discrete number, so we have to use a discrete color ramp/bar
cm = cmap_discretize(plt.get_cmap('YlGnBu'), int(cbmax) + 1)
mappable = plt.cm.ScalarMappable(cmap=cm)
mappable.set_array(counts)
# set min and max values for the colour bar ticks
mappable.set_clim(cbmin, cbmax)
pc = PatchCollection(patches, match_original=True)
# impose …
Run Code Online (Sandbox Code Playgroud)

python matplotlib color-mapping

19
推荐指数
2
解决办法
3万
查看次数

圆形补丁作为 matplotlib 图例标记

我使用以下命令在图像上绘制一些圆圈:

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.patches as mpatches

image = np.zeros((20,20))

x_coords = [3,12]
y_coords = [3,12]

fig, ax = plt.subplots()
ax.imshow(image)

for a,b in zip(x_coords,y_coords):
    circle = plt.Circle((a, b), 2, color="yellow", fill=False, linewidth=2)
    ax.add_artist(circle)
Run Code Online (Sandbox Code Playgroud)

然后我可以使用这个问题的答案之一添加一个图例:

patches = [mpatches.Patch(color="yellow", label="Test")]
plt.legend(handles=patches, bbox_to_anchor=(1.05, 1), loc=2)
Run Code Online (Sandbox Code Playgroud)

产生这个数字:

在此输入图像描述

如何将图例手柄从矩形更改为圆形(类似于在图像上绘制的内容)?

我尝试过使用

patches = [mpatches.Circle((0,0), 2, color="yellow", label="Test")]
plt.legend(handles=patches, bbox_to_anchor=(1.05, 1), loc=2)
Run Code Online (Sandbox Code Playgroud)

它仍然在图例中产生一个矩形。我也尝试过

plt.legend(handles=[circle], labels=["Test"], bbox_to_anchor=(1.05, 1), loc=2)
Run Code Online (Sandbox Code Playgroud)

仍然会产生一个矩形,但没有填充。期望的结果应该是有一个圆圈,其颜色和填充与图像上绘制的颜色和填充相同,作为图例标记。

我正在使用 Python 3.4 和 matplotlib 2.1.0

python matplotlib

5
推荐指数
0
解决办法
3222
查看次数

matplot imshow为每种颜色添加标签并将它们放在图例中

我想在matplotlib中显示如下图像(从这里复制)

在此输入图像描述

但我想标记每种颜色并将它们放在侧面的传奇上,有没有办法做到这一点?

python label matplotlib legend imshow

3
推荐指数
1
解决办法
1787
查看次数

标签 统计

matplotlib ×3

python ×3

color-mapping ×1

imshow ×1

label ×1

legend ×1