python - Why am I getting extra label text instead of the actual label that I put in? -


assume

import matplotlib.pyplot plt 

if documentation

line_up, = plt.plot([1,2,3], label='line 2') line_down, = plt.plot([3,2,1], label='line 1') plt.legend([line_up, line_down], ['line up', 'line down']) 

i line 2d(line 1) if pass plt.legend() instead of label e.g. line 1. why so?

it script year old , can't remember came year ago!?


from script:

relevant_line,  = plt.plot(x, relevant_normal_combination, label="relevant phrases distr.") # ... plt.legend([relevant_line, nonrelevant_line,relevant_mu, nonrelevant_mu], loc = 1) 

gives me:

enter image description here

the difference between example of doc , code, number of lists passed legend (two in doc, 1 in code)

let's take example bellow:

line_no_legend = plt.plot([1,2],[1,1],c="k") line_up, = plt.plot([1,2,3], label='line 2',color="b") line_down, = plt.plot([3,2,1], label='line 1',color="g")  plt.legend([line_up, line_down], ['line up', 'line down'])  #left plt.legend([line_up, line_down])                            #middle plt.legend(handles=[line_up, line_down])                    #right 

legends behaviour

the left documentation, 2 list: handles , new labels (strings)

the middle 1 called 1 list, , has wrong colors , labels. that's because expects list of strings, not list of handles (see legend doc)

the right 1 fixes issue, specifying handles=.


Comments

Popular posts from this blog

php - Wordpress website dashboard page or post editor content is not showing but front end data is showing properly -

How to get the ip address of VM and use it to configure SSH connection dynamically in Ansible -

javascript - Get parameter of GET request -