首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在散点图plot_Python上绘制3行图

在散点图plot_Python上绘制3行图
EN

Stack Overflow用户
提问于 2022-02-17 14:08:41
回答 2查看 150关注 0票数 1

我想在散点图上画一个3行图,以检查散点图中的点是多少,我的散点图如下所示

代码语言:javascript
运行
复制
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张线图,

  1. 1行图@x=y
  2. 第2行图@x=10*y
  3. 第3行图@x= 10/y

预期输出

请帮我在python中做这件事。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-17 14:59:54

您可以使用x数组的最小值和最大值创建50个点的行空间,然后将操作应用于它:

代码语言:javascript
运行
复制
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()

这导致:

票数 2
EN

Stack Overflow用户

发布于 2022-02-17 14:21:27

你所描述的情况如下:

代码语言:javascript
运行
复制
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条具有相似坡度但不同交点的直线,因此(更像在图中):

代码语言:javascript
运行
复制
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')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71159673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档