Построение нескольких графиков на одном графике

#python #matplotlib

Вопрос:

В python у меня есть следующая функция для создания характерных кривых композиции Менденхолла

 def mendenhall(toks):  dist = nltk.FreqDist([len(w) for w in toks])  x = sorted(dist.keys())  y = [dist[i] for i in x]  return x, y  

Затем я создал с его помощью следующие графики

 x,y = mendenhall((nltk.corpus.brown.words(categories='romance'))) plt.plot(x,y)  

и

 x,y = mendenhall((nltk.corpus.brown.words(categories='mystery'))) plt.plot(x,y)  

но есть ли способ поместить эти два на график вместе, или они должны быть отдельными?

Комментарии:

1. Вы пробовали это сделать? Сделайте оба plot звонка, прежде чем делать show . Документация matplotlib очень обширна.

2. Я пытался, но пока безуспешно.

Ответ №1:

Вот доказательство существования того, что то, что я сказал, работает:

 import matplotlib.pyplot as plt  x = [1,2,3,4,5] y1 = [6,7,8,9,10] y2 = [7,6,5,4,3]  plt.plot(x,y1) plt.plot(x,y2) plt.show()  

Итак, в вашем случае:

 x,y = mendenhall((nltk.corpus.brown.words(categories='romance'))) plt.plot(x,y) x,y = mendenhall((nltk.corpus.brown.words(categories='mystery'))) plt.plot(x,y) plt.show()  

Комментарии:

1. Конечно, если оси x не совпадают, результаты не будут перекрываться.

2. Я был сбит с толку, но теперь, когда я это вижу, вы правы. Большое спасибо!

3. Есть ли способ выбрать цвет для каждой строки и/или добавить легион?

4. Конечно, но вам нужно прочитать документацию или поискать примеры.