m0_63291845 2022-07-09 16:37 采纳率: 88.9%
浏览 69
已结题

Python 快递信息的分拣统计与可视化

为了方便运力的安排、快递的分类和查看,请编写程序按以下要求完成快递信息的统计和分拣:
(1)对所有的快递按照在list中的位置进行编号,以便按照编号查看快递,以及按照要求查看快递的编号;
(2)在图形窗口放置“直方图”,“省->编号”“编号->省”三个按钮;
(3)当点击直方图按钮时,在图形窗口显示各省的快递量的直方图,以便按省分配运力;
(4)当点击“省->编号”按钮时,使用多线程方法在命令窗口或者控制台提示“请输入省份:”并等待输入,当输入某个省的名字(全名或简称,如对于内蒙古自治区可以输入内蒙、内蒙古或内蒙古自治区)时,显示该省所有快递的编号以方便分拣
以下为我初步构写 请帮我指出不足 麻烦帮我改进修改一下 望斧正
import matplotlib.pyplot as plt
from matplotlib.widgets import Button
import threading
#导入标准库
plt.rcParams['font.sans-serif']=['SimHei']
#显示中文express=[
['王龙', '北京市海淀区苏州街大恒科技大厦南座4层'],
['庞
飞', '北京市昌平区汇德商厦四楼403'],
['顾锐', '江苏省扬州市三垛镇工业集中区扬州市立华畜禽有限公司'],
['王
飞', '上海市徐汇区上海市徐汇区H88越虹广场B座5E'],
['华升', '北京市海淀区杰睿大厦'],
['朱
锴', '上海市浦东新区川沙新镇华川家园33号楼503'],
['陈盼', '浙江省杭州市闲林街道,西溪华东园,十幢一单元401。'],
['司
鹏', '河南省鹤壁市淇滨大道310号 鹤壁京立医院'],
]
#物流数据
express2={}
for i in range(len(express)):
express2.update({i:express[i]})
print(express2)
#对所有的快递按照在list中的位置进行编号,以便按照编号查看快递,以及按照要求查看快递的编号;
privince={}
for i in range(len(express)):
provin = express[i][1][:2]
if provin in privince.keys():
privince[provin]=privince.get(provin)+1
else:
privince.update({provin:1})
print(privince)
#统计各省的快递量
figl=plt.figure(num=0,figsize=(10,4))def zhi_fang_tu (self):
ax = plt.axes(arg=[0.1,0.2,0.8,0.7])
plt.bar(privince.keys(),privince.values(),width=0.8)
#在图形窗口显示各省的快递量的直方图,以便按省分配运力。
def bian_hao_cha_xun(a):
for i in range(len(express)):
if a[:2] in express[i][1]:
print(i)
#当输入某个省的名字(全名或简称,如对于内蒙古自治区可以输入内蒙、内蒙古或内蒙古自治区)时,显示该省所有快递的编号
def sheng_fen_cha_xun(a):
for i in range(len(express)):
if a==i:
print(express2[i][1][:2])
#当输入编号时,显示该编号对应的省份信息,以便对单个快递所处省份进行确认。
def duo_xian_cheng1(self):
my_thread = threading.Thread(target=bian_hao_cha_xun,args=(input('请输入省份:'),)) my_thread.start()
#多线程方法
def duo_xian_cheng2(self):
my_thread = threading.Thread(target=sheng_fen_cha_xun,args=(int(input('请输入编号:')),))
my_thread.start()
#多线程方法
axnext1=plt.axes([0.35,0.05,0.1,0.075])
button1=Button(axnext1,'直方图',color='0.5',hovercolor='y')
axnext2=plt.axes([0.45,0.05,0.1,0.075])
button2=Button(axnext2,'省->编号',color='0.5',hovercolor='y')
axnext3=plt.axes([0.55,0.05,0.1,0.075])
button3=Button(axnext3,'编号->省',color='0.5',hovercolor='y')
#在图形窗口放置“直方图”,“省->编号”“编号->省”三个按钮
button1.on_clicked(zhi_fang_tu)
button2.on_clicked(duo_xian_cheng1)
button3.on_clicked(duo_xian_cheng2)
#设置三个按钮单击事件
plt.show()
#打开图形

  • 写回答

1条回答 默认 最新

  • Icy Hunter 人工智能领域优质创作者 2022-07-09 17:13
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月17日
  • 已采纳回答 7月9日
  • 创建了问题 7月9日

悬赏问题

  • ¥15 数据接收和更新和代码的修改建议
  • ¥15 Mapreduce是正常的,在运行其他jar包时并没有任何问题,只是在做LogCount.jar 时出的问题。如图所示
  • ¥15 关于#C语言#的问题,请各位专家解答!(语言-c语言)
  • ¥15 ImportError: DLL load failed while importing _iterative: 找不到指定的模块。
  • ¥15 如何通过交互分析得出某高危患者对放疗获益更多
  • ¥15 相关性分析中,p<0.05, r=0.29,怎么评价相关性呢
  • ¥15 docker部署Mongodb后输入命令报错?
  • ¥15 将下列流程图转变成python程序代码
  • ¥15 我需要全国每个城市的最新小区名字等数据。
  • ¥15 开发一个小区生态的小程序