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

eqfvzcg8  于 2023-11-22  发布在  其他
关注(0)|答案(2)|浏览(202)

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

  1. df = pd.read_csv('test.csv', header = 3)
  2. measures = set(df['measurement'])
  3. for j in measures:
  4. x = df['time']
  5. y = df['value']
  6. plt.figure()
  7. plt.plot(x,y)
  8. plt.show()

字符串

pgx2nnw8

pgx2nnw81#

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

  1. # DUMMY DATA
  2. n = 1000 # number of rows
  3. i = 4 # number of unique measures
  4. 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)})
  5. measures = list(set(df['measurement']))
  6. # PLOTTING
  7. fig, axs = plt.subplots(int(i/2),2, figsize=(15,12))
  8. for j in range(len(measures)):
  9. df_subset = df[df['measurement'] == measures[j]]
  10. x = df_subset['Time']
  11. y = df_subset['value']
  12. axs.flatten()[j].plot(x,y)
  13. axs.flatten()[j].set_title(f'Measurement:{measures[j]}')

字符串
输出:

展开查看全部
k5ifujac

k5ifujac2#

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

字符串


的数据

相关问题