python数据可视化技巧的100个练习 -- 51. 调查数据的分类图
你是一家公司的数据分析师,该公司最近进行了一项调查,以了解客户对不同产品类别的偏好。调查结果显示了 100 位客户对三个产品类别:“电子产品”、“服装”和“食品杂货”的偏好评分。你的任务是生成一个分类图来可视化调查数据。在代码中创建输入数据,并确保显示图表。【数据生成代码示例】
import pandas as pdimport numpy as npnp.random.seed(0)data = pd.DataFrame({ 'CustomerID': range(1, 101), 'Electronics': np.random.randint(1, 6, 100), 'Clothing': np.random.randint(1, 6, 100), 'Groceries': np.random.randint(1, 6, 100)})
【图表答案】
【代码答案】
import pandas as pdimport numpy as npimport seaborn as snsimport matplotlib.pyplot as pltnp.random.seed(0)data = pd.DataFrame({ 'CustomerID': range(1, 101), 'Electronics': np.random.randint(1, 6, 100), 'Clothing': np.random.randint(1, 6, 100), 'Groceries': np.random.randint(1, 6, 100)})data_melted = pd.melt(data, id_vars=['CustomerID'], value_vars=['Electronics', 'Clothing', 'Groceries'], var_name='Category', value_name='Rating')sns.catplot(data=data_melted, kind='box', x='Category', y='Rating')plt.title('客户对产品类别的偏好')plt.show()
首先,我们导入必要的库:pandas 用于数据处理,numpy 用于生成随机数据,seaborn 用于绘图,matplotlib 用于显示图表。我们使用 np.random.seed(0) 设置随机种子,以确保随机数据的可重复性。接下来,我们创建一个名为 data 的 DataFrame,包含 100 行,每行代表一位客户。该 DataFrame 包括 “CustomerID”、“Electronics”、“Clothing” 和 “Groceries” 列,随机整数值介于 1 到 5 之间,表示客户评分。然后,我们使用 pd.melt 函数将 DataFrame 从宽格式转换为长格式。该函数将原始 DataFrame 转换为一个新的 DataFrame,其中每一行代表特定类别的单个评分。id_vars 参数指定作为标识符保留的列,value_vars 参数指定要展开的列。生成的 DataFrame 包含三列:“CustomerID”、“Category” 和 “Rating”。接下来,我们使用 seaborn 的 catplot 函数创建分类图。我们指定数据源为 data_melted,图表类型为 “box”,x 轴和 y 轴分别为 “Category” 和 “Rating”。最后,我们使用 plt.title 设置图表标题,并使用 plt.show 显示图表。【小知识】
Seaborn 基于 matplotlib 构建,提供了一个高级接口,用于绘制美观且富有信息量的统计图表。pd.melt 函数特别适用于将数据转换为适合绘图和分析的格式。箱线图适用于可视化数据的分布并识别异常值。它们显示了数据的中位数、四分位数和潜在异常值。设置随机种子可确保生成的随机数字可重复,这对于调试和分享结果至关重要。
系列完整内容可以在公众号主页搜索或点击分栏找到,欢迎扫码关注预防迷路找不到。感谢您的支持与相伴。
