这个问题很可能与我先前在重构链接到here的某些代码(重新使用matplotlib axes对象)时出现的问题有关。该问题描述了使用imshow
会调整image.aspect
参数的问题。
我现在正在解决一个产生类似效果的问题,但是我无法通过强制将image.aspect
参数设置为auto来解决该问题,这是我的第一个想法,因为它似乎正在以某种方式进行调整。我也找不到任何在here中找到的基础文档。
以下是图片,说明了问题(模糊的图例条目):
针对上述行为的 MVCE (带有完全无意义的数据)在下面列出,其中,可以通过切换{{1 }}行到50。
for i in range(1,10):
我希望获得有关我这次正在使用的参数或设置的提示。
答案 0 :(得分:1)
这里#!/bin/bash
set -e
agent_runner() {
while :
do
if [ ! -f "/proc/$(cat /tmp/agent.pid)/status" ]
then
curl $JNLP_AGENT_DOWNLOAD_URL -o agent.jar
java \
-Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=300 \
-Dhttps.protocols=TLSv1.2 \
-jar agent.jar \
-jnlpUrl $JNLP_AGENT_URL \
-secret $JENKINS_SECRET \
-workDir "$JENKINS_WORKDIR" &
echo $! > /tmp/agent.pid
else
:
fi
sleep 10
done
}
while :
do
if [ cat < /dev/tcp/"$TARGET" ]; then
echo "Starting Agent"
agent_runner
else
echo "Jenkins master is offline, waiting...."
fi
sleep 10
done
试图使每个绘制的艺术家都适应尽可能少的填充。当图例条目的数量很大时,这会产生一些不良结果。
在matplotlib版本> 3中,艺术家具有属性tight_layout
(docs for tight_layout),您可以将其设置为True或False,以将set_in_layout
为叫。因此,您可以将tight_layout
修改为类似于以下内容的
__init__
一个替代方法(但不理想)是删除def __init__(self, master):
self.fig = figure.Figure(figsize=(12,6))
self.fig.set_tight_layout(True)
self.axes = self.fig.add_subplot(111)
self.axes.axis('off')
self.canvas = FigureCanvasTkAgg(self.fig, master=master)
self.canvas.get_tk_widget().pack(fill=tk.BOTH, expand=tk.YES)
self.canvas.draw()
self.data = []
# Adjust the upper value to 10 or 50
for i in range(1,50):
self.axes.plot(range(0,100),numpy.random.randint(1,100,100), label=str(i))
self.leg = self.axes.legend()
self.leg.set_in_layout(False) # set to False so it's not used in tight_layout calculation!
并使用self.fig.subplots_adjust()
自己调整空白,但是这可能需要一些参数的手动调整才能获得所需的结果。 / p>