数据
![在这里插入图片描述](https://img-blog.csdnimg.cn/e55485d1fb4e4b7cb79eb9bf441c41bf.png)
代码
import matplotlib.pyplot as plt
import pandas as pd
from pandas.plotting import parallel_coordinates
data = pd.read_excel(r'F:\pycharm\py_workspace\GT_intern\EMS数据平行坐标系\after_split\拆Gaochun.xlsx')
data_1 = data[['EMS_ID', 'car', 'car08', 'car13', 'car18', 'car22']]
'''
print(data_1)
EMS_ID car car08 car13 car18 car22
0 58 1 0 0 0 0
1 59 1 0 1 0 0
2 63 2 0 1 0 0
3 60 1 2 0 1 1
4 57 2 0 1 1 1
5 62 1 1 2 1 0
6 61 1 3 0 2 1
'''
parallel_coordinates(data_1, 'EMS_ID')
plt.legend(loc='upper right', ncol=1, fancybox=True)
plt.show()
parallel_coordinates参数和用法:
parallel_coordinates(frame, class_column, cols=None, ax=None, color=None, use_columns=False, xticks=None, colormap=None, axvlines=True, axvlines_kwds=None, sort_labels=False, **kwargs)
frame: DataFrame class_column:str 包含类名的列名。(即按什么类别划分,本例中需要展现不同站点的数量,所以传入EMS_ID) cols:列表,可选,要使用的列名列表。 ax:matplotlib.axis,可选,Matplotlib 轴对象。 color:列表或元组,可选,用于不同类别的颜色。 use_columns:布尔型,可选,如果为真,列将用作 xticks。 xticks:列表或元组,可选,用于 xticks 的值列表。 colormap:str 或 matplotlib 颜色图,默认无,用于线条颜色的颜色图。 axvlines:布尔型,可选,如果为真,将在每个 xtick 处添加垂直线。 axvlines_kwds:关键字,可选,要传递给垂直线的 axvline 方法的选项。 sort_labels:布尔值,默认为 False,排序 class_column 标签,在分配颜色时很有用。 **kwargs:传递给 matplotlib 绘图方法的选项。
legend用法
1 图例位置 plt.legend(loc=’ ') ![在这里插入图片描述](https://img-blog.csdnimg.cn/2cbd80b70ea34ce3939bd357577d45cc.png)
2 图例边框、底色 plt.legend(loc=‘best’,frameon=False) #去掉图例边框 plt.legend(loc=‘best’,edgecolor=‘blue’) #设置图例边框颜色 plt.legend(loc=‘best’,facecolor=‘blue’) #设置图例背景颜色,若无边框,参数无效
3 图例标题 plt.legend(title=‘figure 1 legend’)
结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/6acdfd4de3c94792885f3c5710fe2c43.png)
批量操作Excel文件
文件排放形式 ![在这里插入图片描述](https://img-blog.csdnimg.cn/184926cfc5a64c4ca443c0174200c17c.png)
import matplotlib.pyplot as plt
import pandas as pd
from pandas.plotting import parallel_coordinates
import os
root_path = r'F:\pycharm\py_workspace\GT_intern\EMS数据平行坐标系\after_split'
filenames = os.listdir(root_path)
for filename in filenames:
print(root_path + '\\' + filename)
data = pd.read_excel(root_path + '\\' + filename)
data_1 = data[['EMS_ID', 'car', 'car08', 'car13', 'car18', 'car22']]
parallel_coordinates(data_1, 'EMS_ID')
plt.legend(loc='upper right', ncol=1, fancybox=True)
plt.title(filename[1:][:-5])
plt.show()
|