数据
代码
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=’ ')
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’)
结果
批量操作Excel文件
文件排放形式
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()
|