在xy绘制python之后在matplotlib中绘制标签

时间:2018-04-26 22:45:13

标签: python matplotlib graph label

我需要在绘图功能之外为我的坐标点创建我的线标签。我有一个循环列表列表,为每个测试数据阶段创建单独的行:

fig = plt.figure(figsize=(11,8.5))
ax = fig.add_subplot(111)    
list_of_x_points = [[1,2,3],[4,5,6,7,8],[9,10,11,12],...]
    list_of_y_points = [[1,1,1],[2,2,2,2,2],[3,3,3,3],...]

for i in range(len(list_of_x_points)):
    ax.plot(list_of_x_points[i], list_of_x_points[i], linecolor = "b" , linewidth = 1, linestyle = 'dashed'))

如果我在linestyle之后插入了标签,则每次循环发生时都会打印标签。我只想打印一次。我在for循环之后和之后尝试了ax.legend(['Line Name']),但它不起作用。如何为图表中的线指定标签?图表看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:0)

正如所指出的那样,我创建了一个可测试版本的代码,而ax.legend()正常工作。

fig = plt.figure(figsize=(11,8.5))
ax = fig.add_subplot(111)    
list_of_x_points = [[1,2,3],[4,5,6,7,8],[9,10,11,12]]
list_of_y_points = [[1,1,1],[2,2,2,2,2],[3,3,3,3]]

for i in range(len(list_of_x_points)):
    ax.plot(list_of_x_points[i], list_of_x_points[i], "-b" , linewidth = 1, linestyle = 'dashed')
ax.legend(['Print this'])
plt.show()

仍然没有理解我的原始代码出了什么问题,我一直在寻找并找到一个明显的答案:

for i in range(len(list_of_x_points)):
    ax.plot(list_of_x_points[i], list_of_x_points[i], "-b" , linewidth = 1, linestyle = 'dashed', label = "Print this" if i == 0 else "")
ax.legend()
plt.show()

我不知道这是否被认为是不好的做法,所以我想要一些有关背面的反馈,但确实有效。