python - 如何舍入 Matplotlib 轴脊柱的连接

标签 python matplotlib plot

这是一个相当简单的问题。我正在努力创建一个具有多个插入轴的 Matplotlib 图。

我已经删除了刻度线,以便每个插入轴的插入脊柱以 90 度角相交。但是,当您向该图添加图例时,它会添加一个图例对象,图例对象的每个“边缘”都有略微圆形的脊椎连接。

是否有一种简单的方法可以为插入轴或更普遍的轴的脊柱获得类似效果?

我的代码:

fig, e = plt.subplots(figsize=(10, 5))
    
a = e.inset_axes([.1, .1, .1, .2])
b = e.inset_axes([.3, .1, .1, .2])

for ax in [a, b]:
    
    ax.set_yticks([])
    ax.set_xticks([])

当前输出:

enter image description here

期望的输出:

enter image description here

最佳答案

一个想法是隐藏刺,画一个FancyBboxPatch在同一个地方。设置 clip_on=False 可避免框被不当剪裁。

将圆角框分配给 ax_a.patch 可以剪裁主斧和插图斧内的对象。

这是修改左插入轴的示例代码。

import matplotlib.pyplot as plt
from matplotlib.patches import FancyBboxPatch
import numpy as np

fig, ax_e = plt.subplots(figsize=(10, 5))

ax_a = ax_e.inset_axes([.1, .1, .1, .2])
ax_b = ax_e.inset_axes([.3, .1, .1, .2])

for ax in [ax_a, ax_b]:
    ax.set_yticks([])
    ax.set_xticks([])
for s in ax_a.spines:
    ax_a.spines[s].set_visible(False)
p_bbox = FancyBboxPatch((0, 0), 1, 1,
                        boxstyle="round,pad=-0.0040,rounding_size=0.2",
                        ec="black", fc="white", clip_on=False, lw=1,
                        mutation_aspect=1,
                        transform=ax_a.transAxes)
ax_a.add_patch(p_bbox)
ax_a.patch = p_bbox

t = np.linspace(0, 2 * np.pi, 100)
ax_a.plot(np.sin(3 * t), np.sin(4 * t))  # drawing some curve
ax_a.plot([-2, 2], [-2, 2], 'g', lw=10, alpha=0.3)  # diagonal line to check the clipping in the corners
ax_a.set_xlim(-1.1, 1.1)
ax_a.set_ylim(-1.1, 1.1)

ax_e.set_facecolor('tomato')  # show the clipping around the inset axes

plt.show()

inset axis with rounded corners

关于python - 如何舍入 Matplotlib 轴脊柱的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70041798/

相关文章:

python - Pandas df.to_excel 用于多个 dfs?

python - 如何在seaborn中将matplotlib颜色图设置为调色板

python - 从 Pandas 数据框转换为 HTML 时,如何在 HTML 中显示完整(非截断)数据框信息?

python - 使用 Healpy 在 Cartview 中添加轴

python - 绘制 sum(matrix,axis=0) 并用求和所需的非零元素的行索引标记该图

Javascript 二维绘图库

matlab - 如何改变 matlab 图(如颜色图)的线条颜色?

function - 数学 : Plotting a module with FindRoot in it

python - 如何从内部函数获取 a 和 b 值

python - Notify 和 pynotify 有什么区别?