Python 使用matplotlib为数据帧设置不同的标记

Python 使用matplotlib为数据帧设置不同的标记,python,python-3.x,pandas,matplotlib,Python,Python 3.x,Pandas,Matplotlib,我想减少我用数据框绘制的每一行的标记大小。我可以设置一个唯一的标记,如下所示: df = pd.read_csv(file_string, index_col=0) df.plot(style=['^-','v-','^-','v-','^-','v-'], markersize=8) 我为每一行设置了不同的样式(我知道有6种新样式),现在我想对尺寸进行相同的设置,但这不起作用: df = pd.read_csv(file_string, index_col=0) df.plot(style=

我想减少我用数据框绘制的每一行的标记大小。我可以设置一个唯一的标记,如下所示:

df = pd.read_csv(file_string, index_col=0)
df.plot(style=['^-','v-','^-','v-','^-','v-'], markersize=8)
我为每一行设置了不同的样式(我知道有6种新样式),现在我想对尺寸进行相同的设置,但这不起作用:

df = pd.read_csv(file_string, index_col=0)
df.plot(style=['^-','v-','^-','v-','^-','v-'], markersize=[16,14,12,10,8,6])

如何实现这样的效果?

markersize
仅接受浮点值,而不接受文档中的列表。 您可以改为使用matplotlib,并单独绘制每条线

import matplotlib.pyplot as plt
import pandas as pd


df = pd.read_csv(file_string, index_col=0)
plt.plot(df[x], df[y1],markersize=16,'^-')
plt.plot(df[x], df[y2],markersize=14,'v-')

#and so on...

plt.show() 

上面前面的答案适用于少量列。如果不想多次重复相同的代码,还可以编写一个循环,在标记之间交替,并在每次迭代时减小标记大小。在这里,我每次减少4个标记,但是开始的大小和减少每个标记大小的数量显然取决于您

df = pd.DataFrame({'y1':np.random.normal(loc = 5, scale = 10, size = 20),
                   'y2':np.random.normal(loc = 5, scale = 10, size = 20),
                   'y3':np.random.normal(loc = 5, scale = 10, size = 20)})
size = 18
for y in df.columns:
    col_index = df.columns.get_loc(y)
    if col_index % 2 == 0:    
        plt.plot(df[y], marker = '^', markersize = size)
    else:
        plt.plot(df[y], marker = 'v', markersize = size)
    size -= 4
plt.legend(ncol = col_index+1, loc = 'lower right')

当我使用此功能时,我会丢失图例。但它是有效的,谢谢!我已经在代码中添加了图例行。你必须调整它以适应你想要的样子。