我无法让这样的事情发挥作用:
def make_plots(data, ax):
sns.lineplot(data,..., ax=ax)
sns.scatterplot(data, ...., ax=ax)
return ???
fig, ax = plt.subplots()
for i in range(5):
make_plot(data[i], ax)
plt.savefig("all5runs.png")
所以我有一个函数可以绘制线图和散点图,希望在同一轴上。我想将所有 5 次运行的数据保留在一张图上,然后保存该图。我确定 make_plots() 应该返回什么,或者我是否正确传递了图形数据。我怎样才能做到这一点?
编辑:目前,我只是在 all5runs.png
最佳答案
IIUC,您需要这样的东西:由于 ax
是使用全局范围定义的,并作为参数传递给函数,因此更改将在每次 for 循环调用期间更新
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
def make_plots(x, y, ax):
sns.lineplot(x, y, ax=ax)
sns.scatterplot(x, y, ax=ax)
return
fig, ax = plt.subplots()
for i in range(5):
x = np.arange(5)
make_plots(x, x*(i+1), ax)
# plt.show() # Uncomment for showing the figure
plt.savefig('all5runs.png')
关于python - 在使用 seaborn 绘图分配斧头对象时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56553045/