Я новичок в Python, и я пытаюсь создать участок на несколько месяцев. Случается так, что блок 3 x3 генерируется, но он пуст, тогда каждый график следует друг за другом, что не позволяет легко просматривать.
Вот мой код, который я поднял из аналогичного вопроса.
def scat_months2(df,prod):
"""Print scatter for all months as sub plots of any given product"""
uniq=sorted(set(train2.YM))[0:9]
fig, axes = plt.subplots(3, 3, figsize=(6, 4), sharex=True, sharey=True)
for period in uniq:
df[(df["YM"]==period) & (df["item_id"]==prod)].plot(x='shop_id',
y='item_price',
kind='scatter',
label=period,alpha=0.2)
fig.tight_layout()
Я попытался сгенерировать некоторые случайные данные, чтобы вы могли мне помочь, но это также не сработало, как я надеялся (снова новичок в Python) ... оно генерирует другоеошибка. Я надеюсь, что это все еще позволяет вам легко исправить мой пример и затем увидеть тот же результат, который я вижу ..
Если вы скажете мне, как я тоже могу правильно генерировать свои случайные данные, это действительно поможет моему обучению. Я извиняюсь за то, что не смог привести функциональный пример.
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
T=pd.Series([201301,201301,201301,201301,201301,201301,201301,201301,201301])
Shop=pd.Series([1,1,1,2,2,2,3,3,3])
Price=pd.Series(np.random.randint(10, size=(9)))
ds1=pd.DataFrame(dict(T = T, Shop=Shop,Price = Price))
T2=pd.Series([201302,201302,201302,201302,201302,201302,201302,201302,201302])
ds2=pd.DataFrame(dict(T = T2, Shop=Shop,Price = Price))
T3=pd.Series([201303,201303,201303,201303,201303,201303,201303,201303,201303])
ds3=pd.DataFrame(dict(T = T3, Shop=Shop,Price = Price))
ds=pd.concat([ds1,ds2,ds3], axis=0)
ds.index=range(27)
def scat_months2(df):
"""Print scatter for all months as sub plots of any given product"""
uniq=sorted(set(df.T))
fig, axes = plt.subplots(3, 1, figsize=(6, 4), sharex=True, sharey=True)
for period in uniq:
df[df["T"]==period].plot(x='Shop',
y='Price',
kind='scatter')
fig.tight_layout()