У меня большой набор данных, и я разделил набор данных на небольшие подмножества 0,1 (от 0 до 100). Я хочу построить для этого блок-график (такой же, как линейный график, но с блок-графиком) от 0 до 100.
Для генерации / сокращения данных (первоначально в миллиардах) я запустил цикл, как показано ниже:
a = np.array(Treecover.where(low)).flatten() # Treecover less than 25 only/low
b = np.array(RZSC.where(low)).flatten()
Low_TC_data = pd.DataFrame({'Treecover': a, 'RZSC': b})
Low_TC_data_NaN = Low_TC_data.dropna()
Tree = []
Mean = []
Max = []
Min = []
Median = []
for i in np.arange(0,1,0.1):
Tree.append(i)
a = 0
a = Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i)) & (Low_TC_data_NaN['Treecover']<(i+0.1))).dropna()
Mean.append(a.mean())
Min.append(a.min())
Max.append(a.max())
Median.append(a.median())
Затем я построил график рассеяния для визуализации данных.
fig = plt.figure(figsize=(10, 7))
plt.scatter(Tree, Mean, s = 500)
plt.scatter(Tree, Median,color = 'red', s = 500)
plt.fill_between(Tree, Min, Max, alpha = 0.3)

Я попытался построить первые 11 коробочных графиков, написав их следующим образом:
fig = plt.figure(figsize=(20, 10))
i = 0
green_diamond = dict(markerfacecolor='w', marker='D')
plt.boxplot((Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i)) & (Low_TC_data_NaN['Treecover']<(i+0.1))).dropna(),
Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i+0.1)) & (Low_TC_data_NaN['Treecover']<(i+0.2))).dropna(),
Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i+0.2)) & (Low_TC_data_NaN['Treecover']<(i+0.3))).dropna(),
Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i+0.3)) & (Low_TC_data_NaN['Treecover']<(i+0.4))).dropna(),
Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i+0.4)) & (Low_TC_data_NaN['Treecover']<(i+0.5))).dropna(),
Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i+0.5)) & (Low_TC_data_NaN['Treecover']<(i+0.6))).dropna(),
Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i+0.6)) & (Low_TC_data_NaN['Treecover']<(i+0.7))).dropna(),
Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i+0.7)) & (Low_TC_data_NaN['Treecover']<(i+0.8))).dropna(),
Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i+0.8)) & (Low_TC_data_NaN['Treecover']<(i+0.9))).dropna(),
Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i+0.9)) & (Low_TC_data_NaN['Treecover']<(i+1))).dropna(),
Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i+1)) & (Low_TC_data_NaN['Treecover']<(i+1.1))).dropna()),
flierprops=green_diamond);
# and this code can go on to
# ....Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i+24.9)) & (Low_TC_data_NaN['Treecover']<(i+25))).dropna()
# For first 250 boxplots

Выше по оси Х 0, 0,1, 0,2, 0,3 ....... 1.
Я хочу, чтобы у меня было 100 таких коробок (или даже 1000), если это возможно.
Я попытался сделать одну неудачную попытку, используя следующий код:
fig = plt.figure(figsize=(5, 10))
data = [(Low_TC_data_NaN['RZSC'].where((Low_TC_data_NaN['Treecover']>=(i)) & (Low_TC_data_NaN['Treecover']<(i+0.1))).dropna()) for i in np.arange(0,1,0.1)]
[plt.boxplot(np.array(data[i]).ravel()) for i in range(5)];

Значения в этом также кажутся немного странными. И не следует за второй цифрой.
Я хочу коробочный график для всех моих шагов с данными. По сути, я хочу, чтобы второй код цифры был короче (лаконичнее) для тех же результатов, что и на рис. 2, и его можно использовать, когда на оси х имеется около 100 значений.