Взял идею @ 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);
}
Скорее всего, ваши данные отображаются, но не в правильном месте. Если вы пойдете по этому примеру , вам нужно добавить что-то вроде fig.autofmt_xdate()
в ваш код.
Способ сделать это - передать массив 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()
Тогда вы получите:
См. matplotlib.pyplot.plot () для получения дополнительной информации.