我想在散点图上画一个3行图,以检查散点图中的点是多少,我的散点图如下所示
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
x = np.array([38420690,53439687,82878917,97448841])
y = np.array([47581627,12731149,3388697,911432])
plt.scatter(x,y)
plt.plot()
plt.show()现在,我想在散点图上再画3张线图,
预期输出

请帮我在python中做这件事。
发布于 2022-02-17 14:59:54
您可以使用x数组的最小值和最大值创建50个点的行空间,然后将操作应用于它:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
x = np.array([38420690,53439687,82878917,97448841])
y = np.array([47581627,12731149,3388697,911432])
min_x = min(x)
max_x = max(x)
newx = np.linspace(min_x, max_x, 50)
newy = newx
plt.figure(figsize=(12, 8))
plt.scatter(x,y, label='scatter')
plt.plot(newx, newy, color='red', label='x=y') # x=y
plt.plot(newx, newy*10, color='blue', label='x=10*y') # x -> 10*y'
plt.plot(newx, 10/newy, color='black',label='x=10/y') # x -> 10/y
plt.legend()
plt.show()这导致:

发布于 2022-02-17 14:21:27
你所描述的情况如下:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
x = np.array([38420690,53439687,82878917,97448841])
y = np.array([47581627,12731149,3388697,911432])
val = [0, 97448841*0.5, 97448841]
plt.scatter(x,y)
plt.plot(val, val, color='red')
plt.plot(val, [i*10 for i in val], color='blue')
plt.plot(val, [i*0.1 for i in val], color='black')
plt.plot()
plt.show()但是,您可能需要3条具有相似坡度但不同交点的直线,因此(更像在图中):
plt.plot(val, val, color='red')
plt.plot(val, [i+10000000 for i in val], color='blue')
plt.plot(val, [i-10000000 for i in val], color='black')https://stackoverflow.com/questions/71159673
复制相似问题