我使用Matplotlib散点绘图仪进行绘图。对于标记我理想地喜欢内部带圆点的圆的轮廓(外圆圈清楚地显示那里的东西,然后点更精确)。如果我只绘制两次(一次用轮廓再用点再绘制),我可以实现这一点但是我的传说并不正确。所以我的问题是,有什么办法可以做到这一点吗?或者我在寻找一种不存在的解决方案?
示例代码:
import matplotlib.pyplot as plt
fig1 = plt.figure()
ax1 = fig1.add_subplot(111)
x_data = [0.5, 1, 1.5]
y_data = [0.06, 0.06, 0.01]
ax1.scatter(x_data, y_data, label= 'Example legend entry.', s=80, marker='o', facecolors='none', edgecolors='black')
ax1.scatter(x_data, y_data, label= 'Example legend entry.', s=10, marker='o', color='black')
plt.gcf().subplots_adjust(bottom=0.08, top=0.95, left=0.05, right=0.84)
ax1.legend(loc='center left', bbox_to_anchor=(1, 0.5), fancybox=True, ncol=1, fontsize=17, labelspacing=1)
mng = plt.get_current_fig_manager()
mng.window.showMaximized()
plt.show()
所以,是的,想要像那些标记一样的东西,但是能够在传奇上拥有它们(不像它当前被分成两部分)。
如果需要进一步的信息或澄清,请询问。在此先感谢您的帮助!
澄清:我不确定我是否已经很好地解释了我的目标。我知道我可以摆脱其中一个传说,但我想要实现的是带有组合标记的单个图例条目(即一个圆圈内有一个点')。如果我无法实现,那么我只是禁用外圈的图例,但非常希望在绘图上使用标记(也就是两个标记的组合)。图例
答案 0 :(得分:4)
您可以使用乳胶标记:
ax1.scatter(x_data, y_data, label= 'Example legend entry.', s=80, marker=r'$\odot$', facecolors='none', edgecolors='black')
然后只绘制一次图表。
答案 1 :(得分:0)
您是否尝试过从圆圈中删除标签?我使用了改变你的代码,以便你的第一个较大的圆圈图没有标签。 ax1.scatter(x_data, y_data, s=80, marker='o', facecolors='none', edgecolors='black')
这对我有用,但也许不适合你?
答案 2 :(得分:0)
您可以标记散点图,并在图例中仅包含一个:
以下是:
a_ = ax1.scatter(x_data, y_data, label= 'Example legend entry.', s=80, marker='o', facecolors='none', edgecolors='black')
b_ = ax1.scatter(x_data, y_data, label= 'Example legend entry.', s=10, marker='o', color='black')
ax1.legend([a_],["Example legend entry"] , loc='center left', bbox_to_anchor=(1, 0.5), fancybox=True, ncol=1, fontsize=17, labelspacing=1)