如何用python读取excl表格绘图(使用matplotlib包)

Matplotlib

数据集

站点编号日期时刻进站人数出站人数
1552015-10-0172941215
1552015-10-01811284067
1552015-10-01914413713
1552015-10-011020432976
1552015-10-011126783198
1552015-10-011225152804
1552015-10-011323132396
1552015-10-011417672680
1552015-10-011518732202
1552015-10-011618602350
1552015-10-011723481987
1552015-10-011811361982
1552015-10-011921251442
1552015-10-01201066930
1552015-10-01211273441
1552015-10-0122999323
1552015-10-012449194
1552015-10-027130648
1552015-10-0284962611

(1)散点图绘制

读取“各站点各时刻进出站客流数据.xlsx”,绘制站点155各时刻进站客流散点图。

代码:

import pandas as pd
import matplotlib.pyplot as plt

# 读取 Excel 文件
data = pd.read_excel('各站点各时刻进出站客流数据.xlsx')

# 提取站点155的进站客流数据
station_155_data = data[data['站点编号'] == 155]

# 绘制散点图
plt.figure(figsize=(12, 6))
plt.scatter(station_155_data['时刻'], station_155_data['进站人数'],color='red', marker='o')
plt.title('Station 155 Inbound Passenger Flow')
plt.xlabel('Time')
plt.ylabel('Inbound Passenger Flow')
plt.grid(True)
plt.xticks(rotation=45)
plt.show()

 

(2)线性图绘制

读取“各站点各时刻进出站客流数据.xlsx”,绘制站点157各时刻进站客流线形图。

代码:

import pandas as pd
import matplotlib.pyplot as plt

# 读取 Excel 文件
data = pd.read_excel('各站点各时刻进出站客流数据.xlsx')

# 筛选出站点157的数据
station_157_data = data[data['站点编号'] == 157]

# 绘制线性图
plt.figure(figsize=(12, 6))
plt.plot(station_157_data['时刻'], station_157_data['进站人数'], marker='o', color='b', linestyle='-')
plt.title('Station 157 Inbound Passenger Flow at Different Times')
plt.xlabel('Time')
plt.ylabel('Inbound Passenger Count')
plt.grid(True)
plt.show()

 

(3)柱状图绘制

读取“各站点各时刻进出站客流数据.xlsx”,绘制站点157各时刻进站客流柱状图。

import pandas as pd
import matplotlib.pyplot as plt

# 读取 Excel 文件
data = pd.read_excel('各站点各时刻进出站客流数据.xlsx')

# 筛选出站点157的数据
station_157_data = data[data['站点编号'] == 157]

# 绘制柱状图并增加数据标注
plt.figure(figsize=(12, 6))
bars = plt.bar(station_157_data['时刻'], station_157_data['进站人数'], color='b', alpha=0.7)

plt.title('Station 157 Inbound Passenger Flow at Different Times')
plt.xlabel('Time')
plt.ylabel('Inbound Passenger Count')
plt.grid(axis='y')

# 添加数据标注
for bar in bars:
    yval = bar.get_height()
    plt.text(bar.get_x() + bar.get_width()/2, yval, round(yval, 1), ha='center', va='bottom')

 

 

(4)直方图绘制

读取“各站点各时刻进出站客流数据.xlsx”,绘制站点157各时刻进站客流直方图。

                 代码:

                        

import pandas as pd
import matplotlib.pyplot as plt

# 读取 Excel 文件
data = pd.read_excel('各站点各时刻进出站客流数据.xlsx')

# 筛选出站点157的数据
station_157_data = data[data['站点编号'] == 157]

# 绘制柱状图并增加数据标注
plt.figure(figsize=(12, 6))
bars = plt.bar(station_157_data['时刻'], station_157_data['进站人数'], color='b', alpha=0.7)

plt.title('Station 157 Inbound Passenger Flow at Different Times')
plt.xlabel('Time')
plt.ylabel('Inbound Passenger Count')
plt.grid(axis='y')

# 添加数据标注
for bar in bars:
    yval = bar.get_height()
    plt.text(bar.get_x() + bar.get_width()/2, yval, round(yval, 1), ha='center', va='bottom')

 

(5)饼图绘制

读取 “各站点各时刻进出站客流数据.xlsx”,绘制站点157各时刻进站客流饼图。

代码:

import pandas as pd
import matplotlib.pyplot as plt

# 读取 Excel 文件
data = pd.read_excel('各站点各时刻进出站客流数据.xlsx')

# 筛选出站点157的数据并选择前10行
station_157_data = data[data['站点编号'] == 157].head(10)

# 绘制饼图
plt.figure(figsize=(8, 8))
plt.pie(station_157_data['进站人数'], labels=station_157_data['时刻'], autopct='%.1f%%', startangle=90)
plt.title('Inbound Passenger Flow at Station 157 (Top 10 Entries)')
plt.axis('equal')
plt.show()

 

(6)箱线图绘制

读取“各站点各时刻进出站客流数据.xlsx”,绘制各站点在9时刻进站客流的箱线图。

                 代码:

import pandas as pd
import matplotlib.pyplot as plt

# 读取 Excel 文件
data = pd.read_excel('各站点各时刻进出站客流数据.xlsx')

# 筛选出所有站点在9时刻的进站客流数据
data_9am = data[data['时刻'] == 9]

# 提取进站客流数据列
inbound_data_9am = data_9am['进站人数']

# 绘制箱线图
plt.figure(figsize=(12, 6))
plt.boxplot(inbound_data_9am, labels=['9am Inbound Passenger Flow'], patch_artist=True, showmeans=True)
plt.title('Box Plot of Inbound Passenger Flow at 9am for All Stations')
plt.ylabel('Inbound Passenger Count')
plt.grid(axis='y')
plt.show()

 

(7)子图绘制

读取“各站点各时刻进出站客流数据.xlsx”,将155、157、151、123四个站点在各时刻的进站客流,用一个2*2的子图,绘制其线性图。

代码:

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

# 读取 Excel 文件
data = pd.read_excel('各站点各时刻进出站客流数据.xlsx')

# 筛选出指定四个站点的数据
selected_stations = [155, 157, 151, 123]
station_data = data[data['站点编号'].isin(selected_stations)]

# 创建一个2*2的子图
fig, axs = plt.subplots(2, 2, figsize=(12, 8))

for idx, station in enumerate(selected_stations):
    row = idx // 2
    col = idx % 2
    station_data_selected = station_data[station_data['站点编号'] == station].head(10)

    axs[row, col].plot(station_data_selected['时刻'], station_data_selected['进站人数'], marker='o')
    axs[row, col].set_title(f'车站 {station} - 入站客流量')
    axs[row, col].set_xlabel('时间')
    axs[row, col].set_ylabel('入站客流量')

    # 添加数据标签
    for i, j in zip(station_data_selected['时刻'], station_data_selected['进站人数']):
        axs[row, col].annotate(str(j), xy=(i, j), xytext=(5, 5), textcoords='offset points')

plt.rcParams['font.sans-serif']=['SimHei']
plt.tight_layout()
plt.show()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张謹礧

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值