- 需求
在日常的学习中,有了数据的产生,总要想办法将数据更好的呈现出来,但是绘制图像的方法和种类各式各样,这里把常见的几种方法进行总结
方法一
plt.figure(figsize=(16, 12))
ax = sns.boxplot(data=data, x='Frequency of Purchases', y='Previous Purchases', order = data['Frequency of Purchases'].value_counts().index)
ax.set_title('Previous Purchases by Purchase Frequency')
ax.set_ylabel('Previous Purchases')
ax.set_xlabel('Frequency of Purchases')
ax.set_xticklabels(ax.get_xticklabels(), rotation=0)
plt.show()

ax = item_counts.plot(kind='bar', stacked=True, figsize=(16, 12), colormap='viridis', legend=False)
ax.set_title('Sales Quantity of Different Items in Each Category', fontsize=16)
ax.set_xlabel('Category', fontsize=12)
ax.set_ylabel('Quantity Sold', fontsize=12)
ax.yaxis.get_major_formatter().set_scientific(False)
for i, category in enumerate(item_counts.index):
y_offset = 0
for item, count in item_counts.loc[category].items():
if count > 0:
ax.text(i, y_offset + count / 2, f'{item}:{count}', ha='center', va='center', fontsize=12, color='white',fontweight='bold')
y_offset += count
plt.xticks(rotation=0)
plt.tight_layout()
plt.show()

方式二
sns.set_style("whitegrid")
plt.figure(figsize=(15, 7))
plt.subplot(1, 2, 1)
sns.distplot(data['Age'], kde=False, bins=10)
plt.title(f'Age Distribution', fontsize=15)
plt.xlabel('Age', fontsize=12)
plt.ylabel('Count', fontsize=12)
plt.subplot(1, 2, 2)
sns.countplot(data=data, x='Gender',order=data['Gender'].value_counts().index)
plt.title(f'Gender Distribution', fontsize=15)
plt.xlabel('Gender', fontsize=12)
plt.ylabel('Count', fontsize=12)
plt.xticks(rotation=0)
plt.tight_layout()
plt.show()

方式三
fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(14, 10))
fig.tight_layout(pad=5.0)
sns.barplot(x=category_sales.index, y=category_sales.values, ax=axes[0, 0])
axes[0, 0].set_title('Total Sales by Category')
axes[0, 0].set_xlabel('Category')
axes[0, 0].set_ylabel('Total Sales (USD)')
sns.barplot(x=category_popularity.index, y=category_popularity.values, ax=axes[0, 1])
axes[0, 1].set_title('Popularity by Category')
axes[0, 1].set_xlabel('Category')
axes[0, 1].set_ylabel('Number of Orders')
sns.barplot(x=category_avg_purchase.index, y=category_avg_purchase.values, ax=axes[1, 0])
axes[1, 0].set_title('Average Purchase Amount by Category')
axes[1, 0].set_xlabel('Category')
axes[1, 0].set_ylabel('Average Purchase Amount (USD)')
sns.barplot(x=payment_method_counts.index, y=payment_method_counts.values, ax=axes[1, 1])
axes[1, 1].set_title('Usage of Payment Methods')
axes[1, 1].set_xlabel('Payment Method')
axes[1, 1].set_ylabel('Number of Orders')
plt.show()

fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(15, 8))
fig.tight_layout(pad=5.0)
sns.barplot(x=season_sales.index, y=season_sales.values, ax=axes[0])
axes[0].set_title('Total Sales by Season')
axes[0].set_xlabel('Season')
axes[0].set_ylabel('Total Sales (USD)')
sns.barplot(x=season_order_count.index, y=season_order_count.values, ax=axes[1])
axes[1].set_title('Number of Orders by Season')
axes[1].set_xlabel('Season')
axes[1].set_ylabel('Number of Orders')
plt.show()
