gpt4 book ai didi

python-3.x - 为什么网格只在最后一个子图上打开?

转载 作者:行者123 更新时间:2023-12-03 09:47:47 25 4
gpt4 key购买 nike

我在一个函数中使用子图,该函数使用 slider 小部件输入来计算一些东西并绘制结果。
我想为 ax1 的所有子图打开网格。但不知何故,jupternotebooks 只在最后一个情节上打开它......

import numpy as np
from matplotlib import pyplot as plt
import ipywidgets as widgets
from IPython.html.widgets import interact
%matplotlib inline

## Plot
fig, ax1 = plt.subplots(6,2)
plt.subplots_adjust(right = 2, top = 8 )
# Show the major grid lines with dark grey lines
plt.grid(b=True, which='major', color='#666666', linestyle='-')
# Show the minor grid lines with very faint and almost transparent grey lines
plt.minorticks_on()
plt.grid(b=True, which='minor', color='#999999', linestyle='-', alpha=0.2)

## Giergeschwindigkeit über v und ay
ax1[0,0].plot(v_ms, omega)
ax1[0,0].set_ylabel('Giergeschwindigkeit [rad/s]')
ax1[0,0].set_xlabel('Geschwindigkeit [m/s]')
ax1[0,0].set_title('Giergeschwindigkeit über Geschwindigkeit')
# ... more subplots
plt.show()

它看起来像这样:
enter image description here

你能向我解释为什么在我的情况下
ax1.grid()

抛出错误?
AttributeError: 'numpy.ndarray' object has no attribute 'grid'

最佳答案

这是因为 plt只会对最后创建的坐标区对象进行操作。
您收到该错误的原因是 ax1是一个 numpy n 维数组,而不是轴对象。

您可以这样做来迭代 numpy n 维数组以创建网格:

for row in axes: 
for ax in row:
ax.grid(b=True, which='major', color='#666666', linestyle='-')
ax.minorticks_on()
ax.grid(b=True, which='minor', color='#999999', linestyle='-',alpha=0.2)

结果(没有 plt.subplots_adjust() ):
enter image description here

关于python-3.x - 为什么网格只在最后一个子图上打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60020071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com