python显示图像某列的颜色值_Python Pandas Matplotlib图由单列中定义的类型值着色

本文介绍如何使用Pandas和Matplotlib根据数据列的类型值为每条线指定不同的颜色。通过将数据组织成DataFrame,然后使用groupby方法分组,可以为不同类型的线条分配独特的颜色。示例代码展示了如何直接操作matplotlib或者使用Pandas的plot方法来实现这一目标。
摘要由CSDN通过智能技术生成

我有以下格式的数据:

import pandas as ps

table={'time':[1,2,3,4,5,1,2,3,4,5,1,2,3,4,5],\

'data':[1,1,2,2,2,1,2,3,4,5,1,2,2,2,3],\

'type':['a','a','a','a','a','b','b','b','b','b','c','c','c','c','c']}

df=ps.DataFrame(table,columns=['time','data','type']

我想将数据绘制成一条线连接的时间的函数,但我希望每一条线都是唯一类型的单独颜色.在此示例中,结果将是三行:每种类型a,b和c的data(time)行.任何指导表示赞赏.

我无法使用此数据生成一行-pandas.scatter将生成一个图,而pandas.plot将不生成.我一直在用循环弄乱每种类型的图,但是我没有找到直接的方法.我的数据通常具有未知数量的唯一“类型”.熊猫和/或matpltlib是否可以创建这种情节?

解决方法:

如果所有索引都正确编制,熊猫绘图功能将允许您执行此操作.但是,有时直接使用matplotlib会更容易:

import pandas as pd

import matplotlib.pyplot as plt

table={'time':[1,2,3,4,5,1,2,3,4,5,1,2,3,4,5],

'data':[1,1,2,2,2,1,2,3,4,5,1,2,2,2,3],

'type':['a','a','a','a','a','b','b','b','b','b','c','c','c','c','c']}

df=pd.DataFrame(table, columns=['time','data','type'])

groups = df.groupby('type')

fig, ax = plt.subplots()

for name, group in groups:

ax.plot(group['time'], group['data'], label=name)

ax.legend(loc='best')

plt.show()

如果您希望使用熊猫图包装器,则需要覆盖图例标签:

import pandas as pd

import matplotlib.pyplot as plt

table={'time':[1,2,3,4,5,1,2,3,4,5,1,2,3,4,5],

'data':[1,1,2,2,2,1,2,3,4,5,1,2,2,2,3],

'type':['a','a','a','a','a','b','b','b','b','b','c','c','c','c','c']}

df=pd.DataFrame(table, columns=['time','data','type'])

df.index = df['time']

groups = df[['data', 'type']].groupby('type')

fig, ax = plt.subplots()

groups.plot(ax=ax, legend=False)

names = [item[0] for item in groups]

ax.legend(ax.lines, names, loc='best')

plt.show()

标签:pandas,matplotlib,python

来源: https://codeday.me/bug/20191028/1955366.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值