我想在maplotlib图的图例中插入几个小图形(矢量图形,但必要时可以制作光栅).图例中的每个项目都会有一个图形.
我知道我可以使用类似注释框的东西手动绘制整个图例,但这看起来很乏味,图中的任何小变化都需要手工修复.
有没有办法在呼叫中pyplot.plot或呼叫后期的标签中包含图形pyplot.legend?
我使用Matplotlib基本上绘制'图片',而不是绘制数据.
在'图片'中,我plt.annotate用来标记图片的某些部分.
我现在想要制作一个完全自定义的图例来表示符号的含义.
有没有一种方法来定义自定义handles和labels,其中handles必须是字母数字字母代替正常的标志像'*'或'o'.
这是可能的还是我必须手动构建图例plt.annotation?
我正在使用以下代码创建自定义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 - 如何将图例中的矩形符号更改为圆形?
我想在图例中使用图像而不是标签.
例如,我画了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底图中有两个内容:多线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.
当前情况:
我有多组线,其中同一组中的线会根据某些特定于组的参数而变化。我根据此参数为同一组内的每行分配一种颜色表中的颜色,并对每个组使用不同的颜色表。
现在,我想在图上添加图例,每组线有一个条目。

仅适用于一组线的解决方案:
如果我只有一组线,则最好的标注方法是按照答案的建议添加色条: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)