我有一个带有多个散点图的图形,当我尝试包含一条最佳拟合线时,它为每个图形提供了相同的线条。这就是现在的样子:
但我希望该线对每个图中的数据点都是唯一的。
这是我到目前为止的代码。我不会包含输入数据的代码,因为它很多,而且我很确定问题是在for循环中。
db.general.find({'animals.$.animal_rules' : { $elemMatch : {"type":"any_rule2"}}})
如何打印最适合的线条的r2值?到目前为止,我有:
import pandas as pd
import matplotlib.pyplot as plt
for i in range(len(uniq)):
plt.subplot(6,6,i+1)
indx = dat['year'] == uniq[i]
plt.scatter(x[indx], y[indx], s=15, color=scalarMap.to_rgba(i), label=uniq[i])
m, b = np.polyfit(x, y, 1)
plt.plot(x, m*x + b, '-')
如果我可以在最佳拟合线旁边打印r2值,那也很棒。
答案 0 :(得分:1)
对于新的编辑,要注释绘图,只需使用matplotlib
的{{3}}:
plt.annotate('Corr. coef = %.3f' % r_value**2, (0.8, 0.2), xycoords='axes fraction', ha='center', va='center', size=10)
答案 1 :(得分:0)
@gereleth解决问题
for i in range(len(uniq)):
plt.subplot(6,6,i+1)
indx = dat['year'] == uniq[i]
plt.scatter(x[indx], y[indx], s=15, color=scalarMap.to_rgba(i), label=uniq[i])
plt.legend(prop={'size':5})
plt.xticks(size = 10)
plt.yticks(size = 10)
m, b = np.polyfit(x[indx], y[indx], 1)
plt.plot(x, m*x + b, '-')