python之pandas批量画平行坐标系图(附图例legend参数设置)

数据

在这里插入图片描述

代码

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 = 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']]
    parallel_coordinates(data_1, 'EMS_ID')
    plt.legend(loc='upper right', ncol=1, fancybox=True)
    plt.title(filename[1:][:-5])# 先去掉"拆"再去掉".xlsx"
    plt.show()
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python平行坐标可以使用pandas和matplotlib库来实现。在绘制平行坐标之前,需要导入相关的库和数据。以下是三个示例代码,可以根据需要选择其中一个来使用。 示例代码1: ``` import matplotlib.pyplot as plt import pandas as pd import seaborn as sns from pandas.plotting import parallel_coordinates data = sns.load_dataset('iris') fig, axes = plt.subplots() parallel_coordinates(data, 'species', ax=axes) fig.savefig('parallel.png') ``` 这段代码使用了pandas和seaborn库来加载鸢尾花数据集,并使用parallel_coordinates函数绘制平行坐标像保存在parallel.png文件中。 示例代码2: ``` import matplotlib.pyplot as plt import pandas as pd from pandas.tools.plotting import parallel_coordinates data = pd.read_csv('E:/ProgramData/Anaconda3/pkgs/pandas-0.23.0-py36h830ac7b_0/Lib/site-packages/pandas/tests/data/iris.csv') data_1 = data\[\['Name', 'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'\]\] parallel_coordinates(data_1, 'Name') plt.legend(loc='upper center', bbox_to_anchor=(0.5, -0.1), ncol=3, fancybox=True, shadow=True) plt.show() ``` 这段代码使用了pandas库来读取鸢尾花数据集,并选择了需要绘制的特征列。然后使用parallel_coordinates函数绘制平行坐标,并添加图例。 示例代码3: ``` import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv('data.csv') fig = plt.figure(figsize=(10, 5)) pd.plotting.parallel_coordinates(data, class_column='class', colormap='viridis', linewidth=2) plt.title('平行坐标', fontsize=16) plt.xlabel('特征') plt.ylabel('特征值') plt.show() ``` 这段代码使用了pandas库来读取数据,并使用pd.plotting.parallel_coordinates函数绘制平行坐标。还可以设置标题、x轴和y轴标签。 以上是三个示例代码,你可以根据自己的需求选择其中一个来绘制Python平行坐标。 #### 引用[.reference_title] - *1* [python核心编程:Python实现平行坐标的绘制(plotly)方式](https://blog.csdn.net/haoxun03/article/details/104270650)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [python数据可视化案例——平行坐标系(使用pyecharts或pandas)](https://blog.csdn.net/qq_40875849/article/details/104368918)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [用 Python 实现的平行坐标](https://blog.csdn.net/update7/article/details/131356580)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值