(标题可真让我脑阔疼,索性随性点)
好久没写博客了,作为建模队里数据手加灵魂造图手,此文记录参加数学建模“认证杯”的造图代码,乘着记忆还热乎,赶紧来封存一下,以免下次要用时,还得重新敲,也好给国赛留一手准备。
python造图真香,先粗略地保存,快要考试了,最近一直在比赛,功课落下亿丢丢,后续再回来填坑叭。
三维图
#停车点的使用次数的三维分布图
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
my_dpi=96
plt.figure(figsize=(480/my_dpi, 480/my_dpi), dpi=my_dpi)
url='D:/认证杯/data(各点累加和).csv'
data = pd.read_csv(url)
plt.rcParams['font.family']="SimHei"
plt.rcParams['axes.unicode_minus'] = False
fig = plt.figure()
ax = fig.gca(projection='3d')
surf=ax.plot_trisurf(data['X'], data['Y'], data['Z'], cmap=plt.cm.viridis, linewidth=0.2)
fig.colorbar( surf, shrink=0.5, aspect=5)
plt.title("停车点的使用次数三维分布图")
plt.xlabel('latitude')
plt.ylabel('longitude')
plt.show()
二维分类图
#聚类区域展示
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import csv
filename='D:/认证杯/数据分类(去重).csv'
data=pd.read_csv(filename,encoding='gbk')
temp=[]
with open(filename) as f:
reader=csv.reader(f)
for index,info in enumerate(reader):
if index!=0:
if info[2] not in temp:
temp.append(info[2])
plt.rcParams['font.family']="SimHei"
plt.rcParams['axes.unicode_minus'] = False
for i in temp:
data1=data[data["Z"]==int(i)]
plt.scatter(data1['X'],data1['Y'],marker=".",s=10)
plt.title('聚类区域展示')
plt.xlabel('latitude')
plt.ylabel('longitude')
plt.show()
以二维渐变图为热力图
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import csv
data=pd.read_csv('D:/认证杯/人口密度.csv')
plt.rcParams['font.family']="SimHei"
plt.rcParams['axes.unicode_minus'] = False
cm=plt.cm.get_cmap('Reds') #RdYlBu_r
sc=plt.scatter(data['X'],data['Y'],c=data['Z'],vmin=1,s=8,cmap=cm)
plt.colorbar(sc)
plt.title('人口密度分布')
plt.xlabel('latitude')
plt.ylabel('longitude')
plt.show()
以散点图复原仓库
#简约杯C题
'''import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import os
os.chdir('C:/Users/ASUS/Desktop/数据“简约杯”')
data=pd.read_excel("C 题 附件-仓库数据.xlsx",sheet_name='货格')
data1=pd.read_csv('任务单的货格坐标.csv',encoding='gbk')
data2=pd.read_csv('任务1的货格坐标.csv',encoding='gbk')
data3=pd.read_excel("C 题 附件-仓库数据.xlsx",sheet_name='复核台')
data4=pd.read_csv('第二题移动路径.csv',encoding='gbk')
plt.style.use("dark_background")
plt.rcParams['font.family']="SimHei"
plt.rcParams['axes.unicode_minus'] = False
plt.scatter(data['坐标 x,毫米'],data['坐标 y,毫米'],s=10,marker="s")
data1=data1[data1['任务单号']=="T0001"]
plt.scatter(data1['坐标 x,毫米'],data1['坐标 y,毫米'],color="red",s=10,marker="s")
for a,b,c in zip(data1['坐标 x,毫米'],data1['坐标 y,毫米'],data1['新序号']):
plt.text(a,b,int(c),ha='left',va="bottom",fontsize=15,color="yellow")
plt.scatter(data3['坐标 x,毫米'],data3['坐标 y,毫米'],color="g",marker="s",s=20)
data2=data2[data2['任务单号']=="FH10"]
plt.scatter(data2['坐标 x,毫米'],data2['坐标 y,毫米'],s=20,color="purple",marker="s")
for a,b in zip(data2['坐标 x,毫米'],data2['坐标 y,毫米']):
plt.text(a,b,"FH10",ha='center',va="bottom",fontsize=12)
plt.xlabel("毫米")
plt.ylabel("毫米")
plt.title("任务单T0001货格分布图")
plt.show()
plt.savefig("第二题货格无连接.png")
这个是参加学校的数据应用处理"简约杯"的比赛,是去年一个建模比赛的题,2020年MathorCup高校数学建模挑战赛——C 题 仓内拣货优化问题。
后续可能再回来整理,鄙人才疏学浅,有感兴趣的道友也可以一起交流学习。