Чтобы проверить, является ли ваша проблема установки pip
, попробуйте использовать easy_install
для установки более ранней версии pip:
easy_install pip==9.0.1
. Если это произойдет, pip
должно работать. Затем вы можете установить любую другую версию pip
, которую вы хотите:
pip install pip==10....
Или вы можете просто остаться с version 9.0.1
, так как ваш проект требует версии> = 9.0.
Попробуйте снова создать проект.
Это альтернативный метод построения графика plot_date
, который вы можете использовать, если ваша независимая переменная datetime
, например, вместо использования более общего метода plot
:
import datetime
data = np.random.rand(24)
#a list of time: 00:00:00 to 23:00:00
times = [datetime.datetime.strptime(str(i), '%H') for i in range(24)]
#'H' controls xticklabel format, 'H' means only the hours is shown
#day, year, week, month, etc are not shown
plt.plot_date(times, data, fmt='H')
plt.setp(plt.gca().xaxis.get_majorticklabels(),
'rotation', 90)
Преимущество этого заключается в том, что теперь вы можете легко контролировать плотность xticks, если мы хотим иметь галочку каждый час, мы вставим эти строки после plot_date
:
##import it if not already imported
#import matplotlib.dates as mdates
plt.gca().xaxis.set_major_locator(mdates.HourLocator())
Вы можете использовать форматировщики для форматирования ваших результатов так, как вы хотите. Например, чтобы напечатать месячные имена, давайте сначала определим функцию с целым числом до аббревиатуры месяца:
def getMonthName(month_number):
testdate=datetime.date(2010,int(month_number),1)
return testdate.strftime('%b')
Здесь я создал произвольную дату с правильным месяцем и возвратил этот месяц. Проверьте документа datetime на наличие доступных кодов формата, если это необходимо. Если это всегда проще, чем просто задать список вручную, это еще один вопрос. Теперь давайте построим несколько ежемесячных тестовых данных:
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
import numpy as np
x_data=np.arange(1,12.5,1)
y_data=x_data**2 # Just some arbitrary data
plt.plot(x_data,y_data)
plt.gca().xaxis.set_major_locator(mtick.FixedLocator(x_data)) # Set tick locations
plt.gca().xaxis.set_major_formatter(mtick.FuncFormatter(lambda x,p:getMonthName(x)))
plt.show()
Сообщение здесь состоит в том, что вы можете использовать matplotlib.ticker.FuncFormatter
для использования любой функции для получения метки метки. Функция принимает два аргумента (значение и положение) и возвращает строку.