import matplotlib.pyplot as plt
import matplotlib.path as mpath
import numpy as np
# Data for plotting
t = [2013, 2014, 2015, 2016, 2017]
s = [12.92, 14.19, 15.39, 15.72, 16.03]
fig, ax = plt.subplots()
ax.plot(t, s, 'o', markersize=15)
ax.set(xlabel='year', ylabel='Revenue (billion dollars)',
title='Revenue Growth')
fig.savefig("test.png")
plt.show()
Вывод здесь, но горизонтальная ось представляет год; как я могу остановить его показ десятичных лет?
Возможное решение - преобразовать ваш массив в массив numpy и передать его в виде строки:
ax.plot(np.asarray(t).astype(str), s, 'o', markersize=15)
from matplotlib.ticker import FormatStrFormatter
fig, ax = plt.subplots()
ax.xaxis.set_major_formatter(FormatStrFormatter('%d'))
t = np.array(t).astype(str)
. В противном случае вы можете установить метки и метки черезax.set_xticks(t); ax.set_xticklabels(t)
. В общем, решение будет заключаться в использовании локатора (например,MultipleLocator(1)
и форматера (например,StrMethodFormatter
). Наконец, вы можете преобразовать вашt
вdatetimes
.