python可视化图表代码,python可视化图形界面

本文介绍了如何使用Python的pandas和matplotlib库生成带点折线图和子图,展示原方案和优化方案下西向直行排队车辆数的变化趋势,包括数据导入、设置、绘制和详细解释每个阶段的过程。
摘要由CSDN通过智能技术生成

本篇文章给大家谈谈python可视化图做好了怎么弄下来,以及python可视化图表代码,希望对各位有所帮助,不要忘了收藏本站喔。

1.数据导入

通常习惯用pandas做处理,引入库、读取对应位置文件:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from sympy import *

data_control1 = pd.read_csv("原/原方案车辆数占有率.csv")
data_control2 = pd.read_csv("5/原方案车辆数占有率.csv")

2.带点折线图生成

显示设置:字体、正负号

# 绘图

plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示汉字

多个折线图绘制在同一个图中

x = data_control2["仿真时间"]
y1 = data_control1['西向直行排队车辆数']
y2 = data_control2['西向直行排队车辆数']
y3 = data_control3['西向直行排队车辆数']
y4 = data_control4['西向直行排队车辆数']
fig2 = plt.figure(figsize=(18, 9))

plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=0.7)
# 左侧坐标
ax1 = fig2.add_subplot(111)
ax1.plot(x, y1, linestyle=':', color='r', label='原方案西进口直行排队车辆数')
ax1.plot(x, y2, '-', color='g', label='优化方案西进口直行排队车辆数')
ax1.plot(x, y3, linestyle=':', color='y', label='原方案西进口直行排队车辆数')
ax1.plot(x, y4, '-', color='b', label='优化方案西进口直行排队车辆数')
ax1.set_ylabel('排队车辆数(veh)')
ax1.set_xlabel('仿真时间(s)')
plt.legend(["原西进口排队车辆数变化趋势", "西进口车流减少1/5时排队车辆数变化趋势", "西进口车流减少1/4时排队车辆数变化趋势", "西进口车流减少1/3时排队车辆数变化趋势"])
plt.show()

多个子图、详解看注释

# 绘图
# -------------------------平均速度---------------------
plot = plt.figure()
fig1 = plt.figure(figsize=(15, 9))  # 图纸大小
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=0.7)  # 子图边距设置
plt.subplot(4, 1, 1)     # (行,列,位置)
plt.plot(data_control1["仿真时间"], data_control1['西向直行排队车辆数'], marker='o', markersize=3)
plt.title("原西进口排队车辆数变化趋势")  # 图的标题
plt.ylabel("排队车辆数(veh)")  # 横轴名
plt.xlabel("仿真时间(s)")  # 纵轴名

plt.subplot(4, 1, 2)     # 只有一张图,也可以多张
plt.plot(data_control2["仿真时间"], data_control2['西向直行排队车辆数'], marker='o', markersize=3)
plt.title("西进口车流减少1/5时排队车辆数变化趋势")  # 图的标题
plt.ylabel("排队车辆数(veh)")  # 横轴名
plt.xlabel("仿真时间(s)")   # 纵轴名


plt.subplot(4, 1, 3)     # (行,列,位置)
plt.plot(data_control3["仿真时间"], data_control3['西向直行排队车辆数'], marker='o', markersize=3)
plt.title("西进口车流减少1/4时排队车辆数变化趋势")  # 图的标题
plt.ylabel("排队车辆数(veh)")  # 横轴名
plt.xlabel("仿真时间(s)")  # 纵轴名

plt.subplot(4, 1, 4)     # 只有一张图,也可以多张
plt.plot(data_control4["仿真时间"], data_control4['西向直行排队车辆数'], marker='o', markersize=3)
plt.title("西进口车流减少1/3时排队车辆数变化趋势")  # 图的标题
plt.ylabel("排队车辆数(veh)")  # 横轴名
plt.xlabel("仿真时间(s)")   # 纵轴名
plt.show()

完整代码:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from sympy import *

data_control1 = pd.read_csv("原/原方案车辆数占有率.csv")
data_control2 = pd.read_csv("5/原方案车辆数占有率.csv")
data_control3 = pd.read_csv("4/原方案车辆数占有率.csv")
data_control4 = pd.read_csv("3/原方案车辆数占有率.csv")


# 绘图

plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示汉字
# 绘图
# -------------------------平均速度---------------------
plot = plt.figure()
fig1 = plt.figure(figsize=(15, 9))  # 图纸大小
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=0.7)  # 子图边距设置
plt.subplot(4, 1, 1)     # (行,列,位置)
plt.plot(data_control1["仿真时间"], data_control1['西向直行排队车辆数'], marker='o', markersize=3)
plt.title("原西进口排队车辆数变化趋势")  # 图的标题
plt.ylabel("排队车辆数(veh)")  # 横轴名
plt.xlabel("仿真时间(s)")  # 纵轴名

plt.subplot(4, 1, 2)     # 只有一张图,也可以多张
plt.plot(data_control2["仿真时间"], data_control2['西向直行排队车辆数'], marker='o', markersize=3)
plt.title("西进口车流减少1/5时排队车辆数变化趋势")  # 图的标题
plt.ylabel("排队车辆数(veh)")  # 横轴名
plt.xlabel("仿真时间(s)")   # 纵轴名

plt.subplot(4, 1, 3)     # (行,列,位置)
plt.plot(data_control3["仿真时间"], data_control3['西向直行排队车辆数'], marker='o', markersize=3)
plt.title("西进口车流减少1/4时排队车辆数变化趋势")  # 图的标题
plt.ylabel("排队车辆数(veh)")  # 横轴名
plt.xlabel("仿真时间(s)")  # 纵轴名

plt.subplot(4, 1, 4)     # 只有一张图,也可以多张
plt.plot(data_control4["仿真时间"], data_control4['西向直行排队车辆数'], marker='o', markersize=3)
plt.title("西进口车流减少1/3时排队车辆数变化趋势")  # 图的标题
plt.ylabel("排队车辆数(veh)")  # 横轴名
plt.xlabel("仿真时间(s)")   # 纵轴名
plt.show()

# 单个车辆加速度,速度

x = data_control2["仿真时间"]
y1 = data_control1['西向直行排队车辆数']
y2 = data_control2['西向直行排队车辆数']
y3 = data_control3['西向直行排队车辆数']
y4 = data_control4['西向直行排队车辆数']
fig2 = plt.figure(figsize=(18, 9))

plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=0.7)
# 左侧坐标
ax1 = fig2.add_subplot(111)
ax1.plot(x, y1, linestyle=':', color='r', label='原方案西进口直行排队车辆数')
ax1.plot(x, y2, '-', color='g', label='优化方案西进口直行排队车辆数')
ax1.plot(x, y3, linestyle=':', color='y', label='原方案西进口直行排队车辆数')
ax1.plot(x, y4, '-', color='b', label='优化方案西进口直行排队车辆数')
ax1.set_ylabel('排队车辆数(veh)')
ax1.set_xlabel('仿真时间(s)')
plt.legend(["原西进口排队车辆数变化趋势", "西进口车流减少1/5时排队车辆数变化趋势", "西进口车流减少1/4时排队车辆数变化趋势", "西进口车流减少1/3时排队车辆数变化趋势"])
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值