Добавление ко всем приведенным выше определениям, еще одна и наиболее часто используемая глубокая копия, находится в конструкторе копирования (или перегружает присваивающий оппортер) класса.
Неверная копия -> когда вы не предоставляя конструктор копирования. Здесь копируется только объект, но не все члены класса копируются.
Deep copy -> это когда вы решили реализовать конструктор копирования или перегрузку в своем классе и разрешить копирование всех членов класса.
MyClass& MyClass(const MyClass& obj) // copy constructor for MyClass
{
// write your code, to copy all the members and return the new object
}
MyClass& operator=(const MyClass& obj) // overloading assignment operator,
{
// write your code, to copy all the members and return the new object
}
Гистограмма сработала бы здесь, но я думаю, что проще вычислить ее самостоятельно и использовать гистограмму - учитывая, что вам также приходится иметь дело с Assets
.
Идея состоит в том, что вам нужно определить, к какой ячейке принадлежит каждая точка данных. Затем вы можете сгруппировать по бин и среднее значение, чтобы рассчитать среднее значение Assets
. На самом деле Seaborn справляется с этим довольно хорошо:
df['bins'] = pd.cut(df['Percentage'], bins=bins)
df['count'] = 1
fig, ax1 = plt.subplots()
sns.barplot(data=df, x='bins', y='count', estimator=np.sum, ax=ax1)
ax2 = ax1.twinx()
sns.pointplot(data=df, x='bins', y='Assets', color='m', join=False, ci=None, ax=ax2)