簡體   English   中英

如何為具有不同顏色的每一行繪制某些DataFrame的切片?

[英]How can I plot slice of certain DataFrame for each row with different color?

我想用不同的顏色為每行(基於行索引)繪制我的Pandas Dataframe某些切片。

我的數據如下所示: img

我已經在本教程的幫助下嘗試找到一種方法,但是我找不到-可能是由於缺乏技能。

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()

以下是我的預期情節: img

我還想知道是否可以替換切片數據的每一行的平均值,該數據包含在繪圖中或繪圖旁的圖例中的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()

編輯以反映修改后的問題:

  1. stack()將您的(切片的)數據幀轉換為具有索引(行,列)的序列
  2. reset_index()將上面的雙級索引重置為level_0 (行), level_1 (列)。
  3. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM