如何将不同的标记分配给图中每列中找到的最大值
how to assign different markers to the max value found in each column in the plot
如何将不同符号的标记分配给每条曲线中的每个最大值?即,4 个不同的标记显示每条曲线中的最大值。
这是我的尝试
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
df = pd.DataFrame(np.random.randint(0,1000,size=(100, 4)), columns=list('ABCD'))
maxValues=df.max()
m=['o', '.', ',', 'x',]
df.plot()
plt.plot(maxValues, marker=m)
在我的真实 df 中,列数会有所不同。
你可以这样做。请注意,我使用了 V
而不是 ,
,因为逗号(像素)没有清晰显示。
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
df = pd.DataFrame(np.random.randint(0,1000,size=(100, 4)), columns=list('ABCD'))
df.plot(figsize=(20,5))
mrk = pd.DataFrame({'A': [df[['A']].idxmax()[0], df['A'].max(), 'o'],
'B': [df[['B']].idxmax()[0], df['B'].max(), '.'],
'C': [df[['C']].idxmax()[0], df['C'].max(), 'v'],
'D': [df[['D']].idxmax()[0], df['D'].max(), 'x']})
for col in range(len(mrk.columns)):
plt.plot(mrk.iloc[0,col], mrk.iloc[1, col], marker=mrk.iloc[2, col], markersize=20)
我手动创建了 mrk
数据框,因为它很小,但您可以使用循环遍历真实数据中的各个列。该图看起来像这样。将标记大小调整为标记的 increase/decrease 大小。
如何将不同符号的标记分配给每条曲线中的每个最大值?即,4 个不同的标记显示每条曲线中的最大值。
这是我的尝试
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
df = pd.DataFrame(np.random.randint(0,1000,size=(100, 4)), columns=list('ABCD'))
maxValues=df.max()
m=['o', '.', ',', 'x',]
df.plot()
plt.plot(maxValues, marker=m)
在我的真实 df 中,列数会有所不同。
你可以这样做。请注意,我使用了 V
而不是 ,
,因为逗号(像素)没有清晰显示。
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
df = pd.DataFrame(np.random.randint(0,1000,size=(100, 4)), columns=list('ABCD'))
df.plot(figsize=(20,5))
mrk = pd.DataFrame({'A': [df[['A']].idxmax()[0], df['A'].max(), 'o'],
'B': [df[['B']].idxmax()[0], df['B'].max(), '.'],
'C': [df[['C']].idxmax()[0], df['C'].max(), 'v'],
'D': [df[['D']].idxmax()[0], df['D'].max(), 'x']})
for col in range(len(mrk.columns)):
plt.plot(mrk.iloc[0,col], mrk.iloc[1, col], marker=mrk.iloc[2, col], markersize=20)
我手动创建了 mrk
数据框,因为它很小,但您可以使用循环遍历真实数据中的各个列。该图看起来像这样。将标记大小调整为标记的 increase/decrease 大小。