使用python将线添加到散点图';s matplotlib
我正在使用python,希望创建一个带有附加行的使用python将线添加到散点图';s matplotlib,python,matplotlib,Python,Matplotlib,我正在使用python,希望创建一个带有附加行的matplotlib.scatter()。线条应从左下角延伸到右上角,与散射体内容无关。 通过数据的线性回归,如中所示,不是我想要的。它也应该是动态的,独立于散射输入 这应该是最终的绘图: 编辑: 这样做的结果是: # Scatter Plot x = data_calc_hourly.temp y = data_obs_hourly.temp lineStart = data_calc_hourly.temp.min() lineEnd
matplotlib.scatter()
。线条应从左下角延伸到右上角,与散射体内容无关。
通过数据的线性回归,如中所示,不是我想要的。它也应该是动态的,独立于散射输入
这应该是最终的绘图:
编辑:
这样做的结果是:
# Scatter Plot
x = data_calc_hourly.temp
y = data_obs_hourly.temp
lineStart = data_calc_hourly.temp.min()
lineEnd = data_calc_hourly.temp.max()
plt.figure()
plt.scatter(x, y, color = 'k', alpha=0.5)
plt.plot([lineStart, lineEnd], [lineStart, lineEnd], 'k-', color = 'r')
plt.xlim(lineStart, lineEnd)
plt.ylim(lineStart, lineEnd)
plt.show()
有更好的方法吗?这将绘制一条对角线,该对角线与散点图数据无关,即使调整窗口大小,它仍以轴为根:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.lines as mlines
import matplotlib.transforms as mtransforms
x, y = np.random.random((2, 100))*2
fig, ax = plt.subplots()
ax.scatter(x, y, c='black')
line = mlines.Line2D([0, 1], [0, 1], color='red')
transform = ax.transAxes
line.set_transform(transform)
ax.add_line(line)
plt.show()
除了unutbu的答案之外,另一个选项是在绘制数据后获取轴的限制,并使用它们添加线。在此之后,仍然需要更改轴限制,因为它们会随着添加线而更改:
# Scatter Plot
x = data_calc_hourly.temp
y = data_obs_hourly.temp
lineStart = data_calc_hourly.temp.min()
lineEnd = data_calc_hourly.temp.max()
plt.figure()
plt.scatter(x, y, color = 'k', alpha=0.5)
y_lim = plt.ylim()
x_lim = plt.xlim()
plt.plot(x_lim, y_lim, 'k-', color = 'r')
plt.ylim(y_lim)
plt.xlim(x_lim)
plt.show()
你可以使用get_ylim()和get_xlim()得到轴的极限,然后计算你要找的线性函数的公式。我不想要线性函数,只想要一条独立直线线性函数是一条独立直线。这种方式只取决于matplotlib选择的轴。啊,好的,谢谢你,我会尝试一下我想要的!这不需要额外的mlines导入,只需使用绘图界面即可完成:
ax.plot([0,1],[0,1],color='red',transform=ax.transAxes)