利用lab01数据表绘制图表:线图、散点图、条形图、饼图、直方图、箱线图和雷达图
利用lab01数据表绘制图表:线图、散点图、条形图、饼图、直方图、箱线图和雷达图
本文将使用Python中的matplotlib库绘制lab01数据表的各种图表,包括线图、散点图、条形图、饼图、直方图、箱线图和雷达图,并添加不同的属性和格式设置。
1. 绘制数据表中total profit的线图,并要求具有如下属性:
- 趋势线为虚线,颜色为红色
- 在右下角显示图例
- 图题为‘图一:全年公司售卖数据’
- X轴标签为Month Number
- Y轴标签为Sold units number
- 标识点为红圈圆点
- 线条宽度为3
2. 绘制每个月toothpaste售卖量的散点图,并要求具有如下属性:
- 图例在绘图的左上角
- 标识点为蓝色叉叉
- 图题为‘图二:牙膏售卖量散点图’
- X轴标签为Month Number
- Y轴标签为Number of Units Sold
- 背景加网格,网格形式为‘-’
3. 绘制face cream售卖量的条形图,并具有如下特征
- 图例在绘图的左上角
- 图题为‘图三:洗面奶和面霜售卖量对比条形图’
- X轴标签为Month Number
- Y轴标签为Sales Units in Number
- 背景加网格,网格形式为‘-’
4. 计算去年每种商品的总售卖量,并绘制各商品售卖额的饼图
- 图例在绘图的右下角
- 显示每种商品售卖额所占百分比数值
- 图题为‘图四:各商品售卖额占比图’
5. 绘制个月售卖额的直方图,并添加分布密度曲线
- 图例在绘图的左上
- 图题为‘图五:售卖额条形分布图’
- X轴标签为Profit Range in dollar
- Y轴标签为Frequency Counts
6. 绘制toothpaste、face cream和face wash售卖量的箱线图
7. 根据如下数据绘制该同学各门课程成绩的雷达图
科目:物理、化学、生物、数学、英语 成绩:60、40、68、94、77
示例代码:
import matplotlib.pyplot as plt
import pandas as pd
# 读取数据表
data = pd.read_csv('lab01.csv')
# 绘制线图
plt.figure(figsize=(10, 6))
plt.plot(data['Month Number'], data['Total Profit'], 'ro-', linewidth=3, linestyle='dashed', markersize=8, label='Total Profit')
plt.legend(loc='lower right')
plt.title('Figure 1: Annual Sales Data')
plt.xlabel('Month Number')
plt.ylabel('Sold units number')
# 绘制散点图
plt.figure(figsize=(10, 6))
plt.scatter(data['Month Number'], data['Toothpaste'], c='blue', marker='x', label='Toothpaste')
plt.legend(loc='upper left')
plt.title('Figure 2: Toothpaste Sales')
plt.xlabel('Month Number')
plt.ylabel('Number of Units Sold')
plt.grid(True, linestyle='-')
# 绘制条形图
plt.figure(figsize=(10, 6))
plt.bar(data['Month Number'], data['Face Cream'], width=0.4, label='Face Cream')
plt.bar(data['Month Number'], data['Face Wash'], width=0.4, label='Face Wash', alpha=0.7)
plt.legend(loc='upper left')
plt.title('Figure 3: Sales of Face Cream and Face Wash')
plt.xlabel('Month Number')
plt.ylabel('Sales Units in Number')
plt.grid(True, linestyle='-')
# 计算商品售卖额
total_sales = data[['Face Cream', 'Face Wash', 'Toothpaste']].sum()
# 绘制饼图
plt.figure(figsize=(10, 6))
plt.pie(total_sales, labels=total_sales.index, autopct='%1.1f%%')
plt.legend(loc='lower right')
plt.title('Figure 4: Sales Proportion of Each Product')
# 绘制直方图
plt.figure(figsize=(10, 6))
plt.hist(data['Total Profit'], bins=10, density=True, edgecolor='black', alpha=0.7)
plt.title('Figure 5: Profit Distribution')
plt.xlabel('Profit Range in dollar')
plt.ylabel('Frequency Counts')
plt.legend(loc='upper left')
# 绘制箱线图
plt.figure(figsize=(10, 6))
plt.boxplot([data['Toothpaste'], data['Face Cream'], data['Face Wash']], labels=['Toothpaste', 'Face Cream', 'Face Wash'])
plt.title('Figure 6: Sales of Toothpaste, Face Cream and Face Wash')
# 绘制雷达图
subjects = ['Physics', 'Chemistry', 'Biology', 'Mathematics', 'English']
scores = [60, 40, 68, 94, 77]
plt.figure(figsize=(8, 8))
plt.polar()
plt.plot(subjects + [subjects[0]], scores + [scores[0]], 'r-', linewidth=2)
plt.fill(subjects + [subjects[0]], scores + [scores[0]], 'r', alpha=0.3)
plt.title('Radar Chart: Student's Scores')
plt.xticks(rotation=45)
plt.show()
请确保已经安装了matplotlib和pandas库,并将数据表(lab01.csv)与代码放在同一个文件夹中。你可以根据需要自定义图形的大小、颜色、样式等属性。
原文地址: https://www.cveoy.top/t/topic/fbpu 著作权归作者所有。请勿转载和采集!