Вы можете сделать это более просто, используя plot()
вместо plot_date()
.
Сначала преобразуем ваши строки в экземпляры Python datetime.date
:
import datetime as dt
dates = ['01/02/1991','01/03/1991','01/04/1991']
x = [dt.datetime.strptime(d,'%m/%d/%Y').date() for d in dates]
y = range(len(x)) # many thanks to Kyss Tao for setting me straight here
Затем сюжет:
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator())
plt.plot(x,y)
plt.gcf().autofmt_xdate()
Результат:
[/g0]
Оператор CREATE TABLE
объявляет столбец DURACION
как тип данных INTERVAL
INTERVAL
не является допустимым типом данных. Вы можете использовать INTERVAL YEAR TO MONTH
или INTERVAL DAY TO SECOND
(с различной точностью).
Рассмотрим, например:
CREATE TABLE EVENTO(
ID_EVENTO NUMBER PRIMARY KEY,
ID_COMPLEJO NUMBER NOT NULL,
N_COMISARIOS NUMBER,
FECHA_EVENTO DATE,
N_PARTICIPANTES NUMBER,
DURACION INTERVAL YEAR TO MONTH,
EQUIPAMIENTO VARCHAR2(255),
FOREIGN KEY (ID_COMPLEJO) REFERENCES COMPLEJO
);
Ссылка: Типы данных Oracle .
Тип INTERVAL в поле длительности недопустим, он не существует как тип данных. Я рекомендую вам использовать дату начала и дату окончания, которая лучше и может предоставить гораздо лучшую информацию. Работа с интервалами может принести много проблем в будущем.
CREATE TABLE EVENTO(
ID_EVENTO NUMBER PRIMARY KEY,
ID_COMPLEJO NUMBER NOT NULL,
N_COMISARIOS NUMBER,
FECHA_EVENTO DATE,
N_PARTICIPANTES NUMBER,
FECHA_INICIO DATE,
FECHA_FIN DATE,
EQUIPAMIENTO VARCHAR2(255),
FOREIGN KEY (ID_COMPLEJO) REFERENCES COMPLEJO
)