Добавление форматированных дат в виде xticks в Matplotlib

Взял идею @ dre010, я распространил ее на другую функцию, которая работает с любым типом изображения: PNG, JPG, JPEG или GIF и дает уникальное имя для имени файла

Функция отдельных данных изображения и тип изображения

function base64ToImage($imageData){
    $data = 'data:image/png;base64,AAAFBfj42Pj4';
    list($type, $imageData) = explode(';', $imageData);
    list(,$extension) = explode('/',$type);
    list(,$imageData)      = explode(',', $imageData);
    $fileName = uniqid().'.'.$extension;
    $imageData = base64_decode($imageData);
    file_put_contents($fileName, $imageData);
}
0
задан Akshay 14 March 2019 в 05:25
поделиться

2 ответа

Скорее всего, ваши данные отображаются, но не в правильном месте. Если вы пойдете по этому примеру , вам нужно добавить что-то вроде fig.autofmt_xdate() в ваш код.

0
ответ дан kmuehlbauer 14 March 2019 в 05:25
поделиться

Способ сделать это - передать массив date вместе с массивом data в методе plot. То есть с данным примером это будет:

import numpy as np
import datetime as dt
import matplotlib.pyplot as plt
from matplotlib.dates import (DateFormatter, rrulewrapper, RRuleLocator, YEARLY)

# Generate random data and dates
data = np.random.randn(10000)
start = dt.datetime.strptime("2019-03-14", "%Y-%m-%d")
end = dt.datetime.strptime("2046-07-30", "%Y-%m-%d")
date = [start + dt.timedelta(days=x) for x in range(0, (end-start).days)]

rule = rrulewrapper(YEARLY, byeaster=1, interval=2)
loc = RRuleLocator(rule)
formatter = DateFormatter('%d/%m/%y')

fig, ax = plt.subplots()
ax.xaxis.set_major_locator(loc)
ax.xaxis.set_major_formatter(formatter)
ax.xaxis.set_tick_params(rotation=30, labelsize=10)
plt.plot(date, data)
ax.set_xlim(min(date), max(date))
plt.show()

Тогда вы получите:

enter image description here

См. matplotlib.pyplot.plot () для получения дополнительной информации.

0
ответ дан Akshay 14 March 2019 в 05:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: