matplotlib 如何为框架列中的每个类别创建子图

eqfvzcg8  于 6个月前  发布在  其他
关注(0)|答案(2)|浏览(65)

如何绘制测量中的唯一值我想从CSV文件中绘制一个与其他2列线图;

df = pd.read_csv('test.csv', header = 3)
measures = set(df['measurement']) 

for j in measures:
    x = df['time']
    y = df['value']
    plt.figure()
    plt.plot(x,y)
    plt.show()

字符串

pgx2nnw8

pgx2nnw81#

在循环内绘图之前,您没有按测量值过滤数据。请参阅下面使用虚拟数据的示例:

# DUMMY DATA
n = 1000 # number of rows
i = 4 # number of unique measures
df = pd.DataFrame({'Time':pd.date_range('2023-03-08', periods=n), 'measurement': np.random.randint(0,i, size = n), 'value':np.random.random(n)})
measures = list(set(df['measurement']))

# PLOTTING
fig, axs = plt.subplots(int(i/2),2, figsize=(15,12))
for j in range(len(measures)):
    df_subset = df[df['measurement'] == measures[j]]
    x = df_subset['Time']
    y = df_subset['value']
    axs.flatten()[j].plot(x,y)
    axs.flatten()[j].set_title(f'Measurement:{measures[j]}')

字符串
输出:

k5ifujac

k5ifujac2#

  • seabornmatplotlib的一个高级API,它可以大大整合代码。
  • 在这种情况下,使用来自此answer的样本数据进行一致性,使用kind='scatter'kind='line'图形级别方法sns.relplot
  • 将用于分隔数据的列传递给col参数。
import seaborn as sns

g = sns.relplot(data=df, x='Time', y='value', col='measurement', col_wrap=2, height=3.5, aspect=2)

字符串


的数据

相关问题