我用来绘制线条的方法如下:
def scatter_plot_with_correlation_line(x, y, graph_filepath):
plt.scatter(x, y)
axes = plt.gca()
m, b = np.polyfit(x, y, 1)
X_plot = np.linspace(axes.get_xlim()[0],axes.get_xlim()[1],100)
plt.plot(X_plot, m*X_plot + b, '-')
plt.savefig(graph_filepath, dpi=300, format='png', bbox_inches='tight')
第一张情节看起来不错:
由于我在循环中使用scatter_plot_with_correlation_line(),因此每次迭代都会导致结果变得更糟。
如何删除从新照片中绘制的上一行?
答案 0 :(得分:1)
是否要删除散点图和线条,然后重新绘制它们?如果是这样,您可以使用plt.gca().cla()
def scatter_plot_with_correlation_line(x, y, graph_filepath):
plt.gca().cla()
plt.scatter(x, y)
axes = plt.gca()
m, b = np.polyfit(x, y, 1)
X_plot = np.linspace(axes.get_xlim()[0],axes.get_xlim()[1],100)
plt.plot(X_plot, m*X_plot + b, '-')
plt.savefig(graph_filepath, dpi=300, format='png', bbox_inches='tight')
如果您只想删除该行,并保留以前绘制的散点图,则可以在绘制时抓取对line2D
对象的引用,然后将其删除:
def scatter_plot_with_correlation_line(x, y, graph_filepath):
plt.scatter(x, y)
axes = plt.gca()
m, b = np.polyfit(x, y, 1)
X_plot = np.linspace(axes.get_xlim()[0],axes.get_xlim()[1],100)
# Store reference to correlation line. note the comma after corr_line
corr_line, = plt.plot(X_plot, m*X_plot + b, '-')
plt.savefig(graph_filepath, dpi=300, format='png', bbox_inches='tight')
# remove the correlation line after saving the figure, ready for the next iteration
corr_line.remove()
答案 1 :(得分:0)
在函数的开头或结尾尝试plt.clear()。
如果它不能正常工作:尝试从线图中分割散点图并仅清除线图。 ;)
答案 2 :(得分:0)
使用新图
git branch --set-upstream-to=origin/rwd-theme
另一种可能性是清除已从轴中绘制的线
def scatter_plot_with_correlation_line(...):
######################
f, ax = plt.subplots()
######################
ax.scatter(...)
ax.plot(...)
f.savefig(...)