Доброе утро, пожалуйста, посмотрите мой код. У меня есть pandas фрейм данных с некоторыми наборами данных. Я создам гистограмму для каждого из наборов данных, используя for-l oop.
К сожалению, l oop прервется после 3-го запуска. Первый набор данных будет удален. Другая проблема возникает в функции. Функция не может преобразовать число с плавающей точкой в целое число. Если я напечатаю «min_val» в функции, консоль выдаст мне значение NaN ...
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import seaborn as sns
def compute_histogram_bins(data, desired_bin_size):
min_val = np.min(data)
max_val = np.max(data)
min_boundary = -1.0 * (min_val % desired_bin_size - min_val)
max_boundary = max_val - max_val % desired_bin_size + desired_bin_size
n_bins = int((max_boundary - min_boundary) / desired_bin_size) + 1
bins = np.linspace(min_boundary, max_boundary, n_bins)
return bins
data = pd.read_csv('data.csv')
data.head()
dataset_1 = data['1'].values
dataset_2 = data['2'].values
dataset_3 = data['3'].values
dataset_4 = data['4'].values
dataset_5 = data['5'].values
dataset_6 = data['6'].values
dataset_7 = data['7'].values
dataset_8 = data['8'].values
dataset_9 = data['9'].values
dataset_10 = data['10'].values
dataset_11 = data['11'].values
dataset_12 = data['12'].values
dataset_13 = data['13'].values
dataset_14 = data['14'].values
dataset_15 = data['15'].values
df=pd.DataFrame({'dataset 1': dataset_1, 'dataset 2': dataset_2, 'dataset 3': dataset_3, 'dataset 4': dataset_4, 'dataset 5': dataset_5, 'dataset 6': dataset_6, 'dataset 7': dataset_7, 'dataset 8': dataset_8})# 'dataset 9': dataset_9, 'dataset 10': dataset_10, 'dataset 11': dataset_11, 'dataset 12':dataset_12, 'dataset 13': dataset_13, 'dataset 14': dataset_14 })
# Layout für Diagramme
fig, big_axes = plt.subplots( figsize=(15.0, 15.0) , nrows=2, ncols=1, sharey=True)
for row, big_ax in enumerate(big_axes, start=1):
big_ax.set_title("Subplot row %s \n" % row, fontsize=16, color='orange')
# Turn off axis lines and ticks of the big subplot
# obs alpha is 0 in RGBA string!
big_ax.tick_params(labelcolor=(1.,1.,1., 0.0), top='off', bottom='off', left='off', right='off')
# removes the white frame
big_ax._frameon = False
# daten schreiben aus Datenframe
num=0
for i in df:
num+=1
n_bins = compute_histogram_bins(df[i],10) # call function
#print(data)
ax = fig.add_subplot(2,8,num)
#ax.scatter(df[i],df[i])
ax.hist(df[i], bins=n_bins) # loop doesn´t work. loop aborted after 3rd run
plt.xlim(-2,2)
plt.ylim(0,70)
ax.set_title('Plot title ' + i, fontsize=8)
fig.set_facecolor('w')
plt.tight_layout()
plt.show()