Matplotlib | 绘制图像的几种方法总结

  • 需求
    在日常的学习中,有了数据的产生,总要想办法将数据更好的呈现出来,但是绘制图像的方法和种类各式各样,这里把常见的几种方法进行总结

方法一

# 创建一个新的图表窗口
plt.figure(figsize=(16, 12))

# 3.联合分析:购买频率与历史购买总数的箱线图
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()

在这里插入图片描述

# 创建堆叠条形图
# kind='bar' 指定了条形图,
# stacked=True 指定了堆叠模式,
# figsize=(16, 12) 设置了图表的大小,
# colormap='viridis' 设置了颜色映射,
# legend=False 禁用了图例。
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)

# 优化坐标轴刻度显示  禁用了 y 轴的科学计数法,使得数字以标准形式显示。
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():
        # print('item_counts.loc[category]:',item_counts.loc[category])
        # print('item count ',(item,count))
        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) #  order是轴显示顺序
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()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胜天半月子

打不打商的无所谓,能帮到你就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值