相关疑难解决方法(0)

在matplotlib图例中插入图像

我想在maplotlib图的图例中插入几个小图形(矢量图形,但必要时可以制作光栅).图例中的每个项目都会有一个图形.

我知道我可以使用类似注释框的东西手动绘制整个图例,但这看起来很乏味,图中的任何小变化都需要手工修复.

有没有办法在呼叫中pyplot.plot或呼叫后期的标签中包含图形pyplot.legend

python numpy matplotlib

40
推荐指数
1
解决办法
3096
查看次数

Python中Matplotlib的完全自定义图例

我使用Matplotlib基本上绘制'图片',而不是绘制数据.

在'图片'中,我plt.annotate用来标记图片的某些部分.

我现在想要制作一个完全自定义的图例来表示符号的含义.

有没有一种方法来定义自定义handleslabels,其中handles必须是字母数字字母代替正常的标志像'*''o'.

这是可能的还是我必须手动构建图例plt.annotation

python plot matplotlib

7
推荐指数
1
解决办法
7755
查看次数

使用mpatches.Patch获取自定义图例

我正在使用以下代码创建自定义matplotlib图例.

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
colors = ["g", "w"]
texts = ["Green Data Description", "RedData Description"]
patches = [ mpatches.Patch(color=colors[i], label="{:s}".format(texts[i]) ) for i in range(len(texts)) ]
plt.legend(handles=patches, bbox_to_anchor=(0.5, 0.5), loc='center', ncol=2 )
Run Code Online (Sandbox Code Playgroud)

结果传奇如下:

在此输入图像描述

1 - 图例中的白色符号未显示,因为默认图例背景也是白色.如何将图例背景设置为其他颜色?

2 - 如何将图例中的矩形符号更改为圆形?

python matplotlib legend

5
推荐指数
2
解决办法
1万
查看次数

用图像替换Matplotlib图例的标签

我想在图例中使用图像而不是标签.

例如,我画了2行并显示了一个图例:

import matplotlib.pyplot as plt
plt.plot([1,2],label="first_image")
plt.plot([2,1],label="second_image")
plt.legend()
plot.show()
Run Code Online (Sandbox Code Playgroud)

我现在有什么

但我希望有这样的东西:

我需要的结果

请注意,这不是matplotlib图例插入图像的重复,我的问题是"将标签更改为图像",而另一个是"将图例的符号更改为图像"

python image matplotlib legend

4
推荐指数
1
解决办法
1178
查看次数

如何在python底图图例中显示shapefile标签?

python底图中有两个内容:多线shapefile(IL_State_ln)和底图范围内一些随机点的散点图.我的兴趣在于生成一个图例,该图例提供有关shapefile和散点的信息.目前,我只能在图例中包含点而不是shapefile.

检查Basemap API文档不提供任何信息,因为函数readshapefile()似乎没有任何label参数.

你能帮我在图例中包含shapefile指标,就像在ArcGIS地图中一样吗?

这是我的代码:

import numpy as np    
from matplotlib import pyplot as plt
from mpl_toolkits.basemap import Basemap

fname = "DATA/GIS/IL_State_ln"

m = Basemap(llcrnrlon=-92.,llcrnrlat=36.8,urcrnrlon=-86.5,urcrnrlat=43.,
             resolution='i', projection='tmerc', lat_0 = 36.5, lon_0 = -91.8)

m.readshapefile(fname, 'mygeom')

x,y = m([-90., -91.2, -88.], [38., 37.7, 42.])
m.scatter(x,y, marker='o', label="Points")

plt.legend(loc=3)
plt.show()
Run Code Online (Sandbox Code Playgroud)

我使用的是Python 3.5,matplotlib 2.0和底图1.0.8.

python gis matplotlib matplotlib-basemap

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

如何在matplotlib图例中放置多个色图补丁?

当前情况:

我有多组线,其中同一组中的线会根据某些特定于组的参数而变化。我根据此参数为同一组内的每行分配一种颜色表中的颜色,并对每个组使用不同的颜色表。

现在,我想在图上添加图例,每组线有一个条目。 stackoverflow问题:如何在matplotlib图例中放置多个颜色图补丁?

仅适用于组线的解决方案:

如果我只有一组线,则最好的标注方法是按照答案的建议添加色条Matplotlib:将色条添加到不可映射的对象

如何最好地对多组线执行此操作?

因为我有多组这样的线,所以我不想为每个新参数添加一个颜色条。相反,我宁愿在图例中放置填充有对应色图的色块(作为一种迷你色条)。

最小的工作示例:

在下面的内容中,您可以找到当前情况的最小工作示例。但是请注意,我在很大程度上简化了隐藏参数依赖性的行的计算。因此,我的“参数” param就是我要遍历的索引。我的实际代码根据具有更复杂功能的模型参数来计算x和y值。因此,param_max此处的最大值对于每组线都是相同的,尽管实际上并非如此。

import numpy as np
import matplotlib.pyplot as plt

x_array = np.linspace(1, 10, 10)
y_array = x_array
param_max = x_array.size
cmaps = [plt.cm.spring, plt.cm.winter]  # set of colormaps 
                                        # (as many as there are groups of lines)
plt.figure()
for param, (x, y) in enumerate(zip(x_array, y_array)):  
    x_line1 = np.linspace(x, 1.5 * x, 10)
    y_line1 = np.linspace(y**2, y**2 - x, 10)
    x_line2 = np.linspace(1.2 …
Run Code Online (Sandbox Code Playgroud)

python matplotlib legend colormap

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

标签 统计

matplotlib ×6

python ×6

legend ×3

colormap ×1

gis ×1

image ×1

matplotlib-basemap ×1

numpy ×1

plot ×1