python-3.x - 根据 col_z 信息从数据表(col_x 和 col_y)中获取 matplotlib 中的多个子图
问题描述
我的表中有 4 列,包括 die_id、数据、时间和间隔。我想根据 nrows 的 len(die_id) 和 cols 的 len(interval) 创建子图。
我尝试了以下代码,但它不起作用,因为轴是 numpy.ndarray。如何解开索引并使其工作?请指教。谢谢。
nrows = len(df['die_id'].unique())
ncols = len(df['interval'].unique())
fig, axes = plt.subplots(nrows=nrows, ncols=ncols, figsize=(20,15))
for subplot_number, (die_id, data) in enumerate(df.groupby(['die_id','interval'])):
axes[subplot_number].plot(data['time_inspect'], data['mean_vc'])
axes[subplot_number].set_title('DieID: {}'.format(die_id))
axes[subplot_number].set_ylabel('mean_vc (V)')
axes[subplot_number].set_xlabel('time_inspect')
plt.tight_layout()
plt.show()
解决方案
您需要使用行和列索引访问子图:
nrows = len(df['die_id'].unique())
ncols = len(df['interval'].unique())
fig, axes = plt.subplots(nrows=nrows, ncols=ncols, figsize=(20,15))
for subplot_number, (die_id, data) in enumerate(df.groupby(['die_id','interval'])):
row = subplot_number // nrows
col = subplot_number % nrows
axes[row][col].plot(data['time_inspect'], data['mean_vc'])
axes[row][col].set_title('DieID: {}'.format(die_id))
axes[row][col].set_ylabel('mean_vc (V)')
axes[row][col].set_xlabel('time_inspect')
plt.tight_layout()
plt.show()
推荐阅读
- ios - 发送意图以在默认应用中创建警报
- php - 如何在一张表中多次使用一个外键获取 Laravel 中的数据?
- c# - 从json中选择类型对象?
- c# - 如何测试字符串数组?
- excel - Selenium Protractor - 从 excel 中搜索
- python - nvim-completion-manager:neovim 在打开新文件时在 cm.py 中显示 Python 语法错误,尽管文件中没有实际的语法错误
- perl - 如何从 HTML 中提取这些表格行?
- reactjs - 为 apache 子域配置反应路由器
- eclipse - 当我运行 engine.scala 时没有任何反应
- windows - 无法在 Windows 中运行系统命令