Matplotlib, как начать тиков, оставляя пространство от начала координат - PullRequest
4 голосов
/ 19 января 2012

Мне нужно нанести не числовые данные на даты в виде простого линейного графика. Я использую matplotlib.

Вот пример кода.

import matplotlib.pyplot as plt

xticks=['Jan','Feb','Mar','April','May']
x=[1,2,3,4,5]
yticks = ['Windy', 'Sunny', 'Rainy', 'Cloudy', 'Snowy']
y=[2,1,3,5,4]

plt.plot(x,y,'bo') #.2,.1,.7,.8
plt.subplots_adjust(left =0.2)

plt.xticks(x,xticks)
plt.yticks(y,yticks)
plt.show()

Graph generated from code

Я хочу, чтобы метки тиков оставляли место от начала координат. Так что они не выглядят очень забитыми. Должен ли я использовать Fixedlocator для этого? Также я хотел бы, чтобы график был линией, показывающей маркеры для каждой точки, как в этом примере. Как мне этого добиться?

1 Ответ

6 голосов
/ 19 января 2012
  • Вы можете «поднять» график, установив более низкое значение ylim с помощью ax.set_ylim.
  • Точки маркера можно добавить к графику, используя параметр параметра marker = 'o' в вызове plt.plot:

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)

xticks=['Jan','Feb','Mar','April','May']
x=[1,2,3,4,5]
yticks = ['Windy', 'Sunny', 'Rainy', 'Cloudy', 'Snowy']
y=[2,1,3,5,4]

plt.plot(x,y,'b-', marker = 'o') #.2,.1,.7,.8
plt.subplots_adjust(left =0.2)

plt.xticks(x,xticks)
plt.yticks(y,yticks)
ax.set_ylim(0.5,max(y))
plt.show()

enter image description here

...