代码优化,可视化优化问题


import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler


data = pd.read_excel('C:\\Users\\86135\\Desktop\\sales_summary.xlsx')  


scaler = MinMaxScaler()
data['销量(归一化)'] = scaler.fit_transform(data[['销量(千克)']])


plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(12, 6))
plt.scatter(data['分类名称'], data['单品名称'], c=data['销量(归一化)'], cmap='viridis', s=50)
plt.colorbar(label='销量(归一化)')
plt.xlabel('分类名称')
plt.ylabel('单品名称')
plt.title('销售总量归一化分布图')
plt.xticks(rotation=90)
plt.tight_layout()


plt.savefig(r'C:\Users\86135\Desktop\sales_normalized_plot.png', dpi=300) 


data.to_csv(r'C:\Users\86135\Desktop\sales_normalized_summary.csv', index=False)  

img


请问如何优化这个散点图呢,左边一栏单品数据较多较杂如何优化呢请问?

【以下回答由 GPT 生成】

首先,根据问题描述,可以考虑以下几方面来优化散点图的可视化结果和左边一栏的单品数据:

  1. 减少横轴分类名称的重叠:由于单品数据较多,导致横轴的分类名称重叠,可以通过旋转标签、调整间距等方式解决。

可以在代码中加入以下语句来解决分类名称的重叠问题:

plt.xticks(rotation=45, ha='right')  # 设置x轴标签旋转角度和对齐方式
plt.subplots_adjust(bottom=0.3)  # 调整底部边距
  1. 调整散点的大小和颜色映射:散点的大小和颜色映射可以通过调整参数来使取值范围更合适,以突出销量差异。

可以在代码中加入以下语句来调整散点的大小和颜色映射:

plt.scatter(data['分类名称'], data['单品名称'], c=data['销量(归一化)'], cmap='viridis', s=100)

其中,参数s代表散点的大小,可以适当调整大小以展示更清晰的结果。

  1. 使用子图分割以展示更多的数据细节:将散点图分割成多个子图,每个子图表示一部分的数据,以改善图形结果的清晰度。

可以在代码中加入以下语句来使用子图分割:

fig, ax = plt.subplots(nrows=2, ncols=2, figsize=(12, 12))  # 创建2x2的子图布局
ax[0, 0].scatter(data['分类名称'], data['单品名称'], c=data['销量(归一化)'], cmap='viridis', s=50)
ax[0, 1].scatter(data['分类名称'], data['单品名称'], c=data['销量(归一化)'], cmap='viridis', s=50)
ax[1, 0].scatter(data['分类名称'], data['单品名称'], c=data['销量(归一化)'], cmap='viridis', s=50)
ax[1, 1].scatter(data['分类名称'], data['单品名称'], c=data['销量(归一化)'], cmap='viridis', s=50)

可以根据实际需求,调整子图的布局和尺寸。

  1. 使用交互式可视化工具:为了更好地展示单品数据,可以考虑使用交互式可视化工具,如Plotly或Bokeh,可以提供更多的交互和过滤选项,方便用户查看和分析单品数据。

这些是一些建议的优化方法,可以根据实际情况选择其中的一种或多种方法来改善散点图的可视化结果和左边一栏的单品数据。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^