Мне нужно создать диаграмму с сеткой, как на следующем рисунке. Ключевых факторов являются:Возможно ли создать диаграмму с этим конкретным фоном?
- По оси й время с каждым тиком маркировкой 30 секунд
- у-оси этикетки на графику повторе при переменном интервале
- диаграммы должен расти с количеством данных (т. е. за 30 минут данных, должно быть 60 коробок в ширину)
Я немного искал matplotlib, и это кажется многообещающим. Мне также удалось заполнить диаграмму данными. См. Мой результат за 40 минут данных.
Но прежде чем вкладывать больше времени в исследования, я должен знать, возможна ли эта цель. Если нет, мне придется заглянуть в другие диаграммы. Спасибо за вашу помощь!
Вот источник на изображении выше (my_data фактически считывается из CSV, но заполняется случайным мусором здесь):
from matplotlib import dates
import matplotlib.pyplot as plt
import numpy as np
import time
from datetime import datetime
my_data = list()
for i in range(3000):
my_data.append((datetime.fromtimestamp(i + time.time()), np.random.randint(50, 200), np.random.randint(10, 100)))
hfmt = dates.DateFormatter('%H:%M:%S')
fig = plt.figure()
actg = fig.add_subplot(2, 1, 1) # two rows, one column, first plot
plt.ylim(50, 210)
atoco = fig.add_subplot(2, 1, 2) # second plot
plt.ylim(0, 100)
actg.xaxis.set_minor_locator(dates.MinuteLocator())
actg.xaxis.set_major_formatter(hfmt)
atoco.xaxis.set_minor_locator(dates.MinuteLocator())
atoco.xaxis.set_major_formatter(hfmt)
plt.xticks(rotation=45)
times = []
fhr1 = []
toco = []
for key in my_data:
times.append(key[0])
fhr1.append(key[1])
toco.append(key[2])
actg.plot_date(times, fhr1, '-')
atoco.plot_date(times, toco, '-')
for ax in fig.axes:
ax.grid(True)
plt.tight_layout()
plt.show()
Можете ли вы поделиться своим кодом как [MCVE] (// stackoverflow.com/help/mcve), пожалуйста? – tom
@tom: Просто сделал это, спасибо за ваше терпение. – Sherlock70