赞
踩
使用清华源,命令如下:
- pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn pandas
-
- pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn matplotlib
-
- pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn openpyxl
安装成功后,可以进入下一步。
- # 导包
- import openpyxl
- # 创建工作簿
- workbook = openpyxl.Workbook()
- # 选择默认的活动工作表
- sheet = workbook.active
- # 添加数据
- data = [
- ['Name','Age','Gender'],
- ['Mike','25','Male'],
- ['Alice','26','Female'],
- ['Bob','25','Male'],
- ['John','29','Male'],
- ['Charlie','30','Male'],
- ['Anna','25','Female'],
- ]
- for row in data:
- sheet.append(row)
- # 保存工作簿到文件,完成创建
- workbook.save("demo.xlsx")
运行代码生成如下表格:
- # 导包
- import pandas as pd
- import matplotlib.pyplot as plt
-
- # 读取Excel文件
- df = pd.read_excel("demo.xlsx")
-
- # 统计性别的数量
- gender_counts = df['Gender'].value_counts()
-
- # 提取性别作为标签
- genders = gender_counts.index.tolist()
-
- # 数据可视化 - 性别分布饼图
- fig, ax = plt.subplots()
- # pie函数用来绘制饼图
- ax.pie(gender_counts, labels=genders, autopct='%1.1f%%', startangle=90)
- ax.axis('equal') # 确保饼图为正圆形
- plt.title('Gender Distribution')
- plt.show()
运行结果如下图所示:
- # 导包
- import pandas as pd
- import matplotlib.pyplot as plt
-
- # 读取Excel文件
- file_path = 'demo.xlsx' # 请将这里替换为你的Excel文件的路径
- df = pd.read_excel(file_path, engine='openpyxl')
-
- # 查看表格数据
- print(df.head())
-
- # 绘制年龄的条形图
- plt.figure(figsize=(10, 5))
- plt.bar(df['Name'], df['Age'])
- # x轴 y轴命名
- plt.xlabel('Name')
- plt.ylabel('Age')
- # 表名
- plt.title('Age by Name')
- plt.legend(["Number"], loc='upper right') # 添加图例,标注柱状图表示的是"Number"
- plt.show()
运行结果如下:
或者也可以根据单列(这里以年龄为横坐标)绘制柱状图:
- # 导包
- import pandas as pd
- import matplotlib.pyplot as plt
- import seaborn as sns
-
- # 读取Excel表
- file_path = 'demo.xlsx' # 将文件名替换为你的Excel文件的路径
- df = pd.read_excel(file_path, engine='openpyxl')
- plt.figure(figsize=(10, 10))
- sns.displot(df['Age'])
- plt.title('Age Distribution')
- # 如果出现title显示不全,使用tight_layout函数即可
- plt.tight_layout()
- plt.show()
- # 导包
- import pandas as pd
- import matplotlib.pyplot as plt
-
- # 读取Excel文件
- file_path = 'demo.xlsx' # 将文件名替换为你的Excel文件的路径
- df = pd.read_excel(file_path, engine='openpyxl')
-
- # 确保数据包含'Name', 'Age', 和 'Gender'列
- if 'Name' in df.columns and 'Age' in df.columns and 'Gender' in df.columns:
- # 创建散点图
- plt.scatter(df['Age'], df['Name'])
- plt.xlabel('Age')
- plt.ylabel('Name')
- plt.title('Scatter Plot')
- plt.show()
- else:
- print("数据表中缺少'Name', 'Age', 或 'Gender'列。")
运行结果如下:
- # 导包
- import pandas as pd
- import matplotlib.pyplot as plt
-
- # 读取Excel文件
- file_path = 'demo.xlsx' # 将文件名替换为你的Excel文件的路径
- df = pd.read_excel(file_path, engine='openpyxl')
-
- # 绘制箱线图
- plt.figure(figsize=(10, 5))
- plt.boxplot(df['Age'])
- plt.title('Box Plot of Age')
- plt.xlabel('Name')
- plt.ylabel('Age')
- plt.show()
运行结果如下:
- import matplotlib.pyplot as plt
- import pandas as pd
- # 读取Excel表
- file_path = 'demo.xlsx' # 将文件名替换为你的Excel文件的路径
- df = pd.read_excel(file_path, engine='openpyxl')
- # 绘制折线图
- plt.plot(df['Age'])
- plt.title('Line Plot')
- plt.xlabel('Time')
- plt.ylabel('Age')
- plt.show()
运行结果如下:
如果想对多个变量进行折线图的绘制,只需要将x轴和y轴的数据列替换为相应的列名即可。
这里绘制Gender和Age之间的关系折线图(不太恰当,为了举例):
- plt.plot(df['Gender'], df['Age'])
- plt.title('Gender vs Age Line Plot')
- plt.xlabel('Gender')
- plt.ylabel('Age')
- plt.show()
- import pandas as pd
- import seaborn as sns
- import matplotlib.pyplot as plt
- # 读取Excel表
- file_path = 'demo.xlsx' # 将文件名替换为你的Excel文件的路径
- df = pd.read_excel(file_path, engine='openpyxl')
-
- # 绘制直方图 bins参数指定了直方图的柱子数量
- sns.distplot(df['Age'], bins=20)
- plt.title('Age Distribution')
- plt.show()
结果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。