gpt4 book ai didi

python - Matplotlib : How to pass the subplot-number to floating_axes. FloatingSubplot 方法?

转载 作者:行者123 更新时间:2023-12-05 06:53:17 27 4
gpt4 key购买 nike

我有一个包含 16 个子图的 4x4 网格。我正在使用 floating_axes.FloatingSubplot 方法来旋转图中的所有轴。我应该如何传递子图编号,因为它采用轴但作为三位数,请参见 this .现在,由于我有 9 个以上的子图,我不知道如何将子图编号传递给 FloatingSubplot 方法。

代码:-

from mpl_toolkits.axisartist.grid_finder import DictFormatter
from matplotlib.transforms import Affine2D
import mpl_toolkits.axisartist.floating_axes as floating_axes
import matplotlib.pyplot as plt

def setup_axes1(fig, ax, angle):
tr = Affine2D().scale(2, 2).rotate_deg(angle)

grid_helper = floating_axes.GridHelperCurveLinear(
tr, extremes=(0, 11, 0, 11)
)

ax1 = floating_axes.FloatingSubplot(fig, ax, grid_helper=grid_helper)
ax1.axis("off")

ax1.axis["bottom"].set_visible(False)
ax1.axis["top"].set_visible(False)
ax1.axis["right"].set_visible(False)
ax1.axis["left"].set_visible(False)

fig.add_subplot(ax1)

aux_ax = ax1.get_aux_axes(tr)

return aux_ax

fig, axes = plt.subplots(nrows=4, ncols=3, figsize=(16,30), facecolor="#222222")

for index, ax_ in enumerate(fig.get_axes(), start=1):

fig.delaxes(ax_)

## HERE IS THE PROBLEM PASSING 430 + INDEX FAILS AT 430 + 10
ax = setup_axes1(fig, 430 + index, -45)

ax.set_aspect("equal")

temp_count = 1

start, end = 1, 10

for i in range(start, end+1):
count = 0
for j in range(end-i+1, end+1):
if temp_count <= 55:
color, radius, hatch_num, lw, fill = "gold", 0.4, 0, 1, "gold"
else:
color, radius, hatch_num, lw, fill = "grey", 0.27, 5, 0, None

count += 1

circle = plt.Circle((count, j), radius=radius, linewidth=lw, fill=fill, hatch=hatch_num*'-', color=color)
ax.add_artist(circle)

temp_count += 1

for i in range(start+1, end+1):
count = i
for j in range(start, end+1-i+1):
if temp_count <= 55:
color, radius, hatch_num, lw, fill = "gold", 0.4, 0, 1, "gold"
else:
color, radius, hatch_num, lw, fill = "#F2F2F2", 0.3, 3, 0, None

circle = plt.Circle((count, j), radius=radius, linewidth=lw, fill=fill, hatch=hatch_num*'-', color=color)
ax.add_artist(circle)

count += 1
temp_count += 1

# plt.show()

输出: enter image description here

有人可以帮忙吗?

最佳答案

不确定您是否找到了解决方案,但我今天遇到了完全相同的问题。我尝试传递 x、y、n 值而不是 rect,就像我在 add_subfigure 中所做的那样但没有成功。

但是我也发现FloatingSubplot方法已经贬值了,而且在最初的帖子发布时已经贬值了。我认为解决方案是使用另一种方法,但我无法弄清楚它被替换了什么。

我的解决方案是强制使用 3x3 网格并制作多个数字...丑陋,但是嗯。

我知道这篇文章并没有真正回答问题,但是提及此方法已过时很可能对将来最终访问此页面的任何人都有用。

关于python - Matplotlib : How to pass the subplot-number to floating_axes. FloatingSubplot 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65816019/

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