![](/img/trans.png)
[英]How can I assign a value to a different column for each row in a dataframe?
[英]How can I plot slice of certain DataFrame for each row with different color?
我想用不同的颜色为每行(基于行索引)绘制我的Pandas Dataframe
某些切片。
我的数据如下所示:
我已经在本教程的帮助下尝试找到一种方法,但是我找不到-可能是由于缺乏技能。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df = pd.read_csv("D:\SOF10.csv" , header=None)
df.head()
#Slice interested data
C = df.iloc[:, 2::3]
#Plot Temp base on row index colorfully
C.apply(lambda x: plt.scatter(x.index, x, c='g'))
plt.show()
以下是我的预期情节:
我还想知道是否可以替换切片数据的每一行的平均值,该数据包含在绘图中或绘图旁的图例中的480个值! 计算图例中某处的均值和位移是可行的(如下图所示),还是通过在图形中自身数据旁边使用小字体位移来计算?
数据样本: 数据
这使情节没有传说
C = df.iloc[:,2::3].stack().reset_index()
C.columns = ['level_0', 'level_1', 'Temperature']
fig, ax = plt.subplots(1,1)
C.plot('level_0', 'Temperature',
ax=ax, kind='scatter',
c='level_0', colormap='tab20',
colorbar=False, legend=True)
ax.set_xlabel('Cycles')
plt.show()
编辑以反映修改后的问题:
stack()
将您的(切片的)数据帧转换为具有索引(行,列)的序列 reset_index()
将上面的双级索引重置为level_0
(行), level_1
(列)。 set_xlabel
将x轴的标签设置为所需的标签。 编辑2:以下代码产生图例散布:
CC = df.iloc[:,2::3]
fig, ax = plt.subplots(1,1, figsize=(16,9))
labels = CC.mean(axis=1)
for i in CC.index:
ax.scatter([i]*len(CC.columns[1:]), CC.iloc[i,1:], label=labels[i])
ax.legend()
ax.set_xlabel('Cycles')
ax.set_ylabel('Temperature')
plt.show()
这可能是一个大概的答案。 scatter(c=, cmap=
可用于所需的着色。
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import itertools
df = pd.DataFrame({'a':[34,22,1,34]})
fig, subplot_axes = plt.subplots(1, 1, figsize=(20, 10)) # width, height
colors = ['red','green','blue','purple']
cmap=matplotlib.colors.ListedColormap(colors)
for col in df.columns:
subplot_axes.scatter(df.index, df[col].values, c=df.index, cmap=cmap, alpha=.9)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.