鱼C论坛

 找回密码
 立即注册
查看: 1282|回复: 9

[已解决]请问如何实现实时可视化数据绘图的功能?

[复制链接]
发表于 2020-9-6 23:03:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
例如:
import random   
while True:
     a=random.randint(1,1500)
   
每次生成一个随机数,然后把这个随机数画出来。
最佳答案
2020-9-7 11:45:21
你可以修改为这样
  1. import random
  2. import matplotlib.pyplot as plt

  3. fig = plt.figure()
  4. ax = plt.gca()

  5. x = []
  6. i = 0

  7. while i < 500:
  8.     x.append(random.randint(1,1500))
  9.     ax.scatter(i, x[i], c = 'b', s = i/10)
  10.     plt.pause(0.2)
  11.     plt.xlim([0, 500])
  12.     plt.ylim([0,1500])
  13.     plt.title('Scatter Graph')
  14.     plt.grid(True)
  15.     i += 1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-6 23:15:20 | 显示全部楼层


网上抄的代码,改动了下,应该是你想要的效果吧?

X 轴就是代表随机数的序号,从 0  开始 ,Y 轴是代表随机数的值

  1. import random
  2. import matplotlib.pyplot as plt

  3. fig = plt.figure()
  4. ax = plt.gca()

  5. X = []
  6. i = 0
  7. while True:
  8.     X.append(random.randint(1, 1500))
  9.     ax.scatter(i, X[i], c='r')
  10.     plt.pause(0.4)
  11.     i += 1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-7 08:41:22 | 显示全部楼层
Twilight6 发表于 2020-9-6 23:15
网上抄的代码,改动了下,应该是你想要的效果吧?

X 轴就是代表随机数的序号,从 0  开始 ,Y 轴是 ...

多谢,这个图的X轴是变化的,我想要的效果是先把X轴刻度一次性画出来,比如有200个刻度,然后每生成一个y值,就在这个刻度上画个点,然后把点与点之间用折线连接。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-7 09:31:59 | 显示全部楼层
cdkeycdma 发表于 2020-9-7 08:41
多谢,这个图的X轴是变化的,我想要的效果是先把X轴刻度一次性画出来,比如有200个刻度,然后每生成一个y ...



你都设置为 True 死循环了,没有规定生成多少数,怎么可能可以知道 X 轴最大值是多少?这是无限生成下去的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-7 10:33:20 From FishC Mobile | 显示全部楼层
条件可以改成a<1500
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-7 11:45:21 | 显示全部楼层    本楼为最佳答案   
你可以修改为这样
  1. import random
  2. import matplotlib.pyplot as plt

  3. fig = plt.figure()
  4. ax = plt.gca()

  5. x = []
  6. i = 0

  7. while i < 500:
  8.     x.append(random.randint(1,1500))
  9.     ax.scatter(i, x[i], c = 'b', s = i/10)
  10.     plt.pause(0.2)
  11.     plt.xlim([0, 500])
  12.     plt.ylim([0,1500])
  13.     plt.title('Scatter Graph')
  14.     plt.grid(True)
  15.     i += 1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-7 12:23:48 | 显示全部楼层
bonst 发表于 2020-9-7 11:45
你可以修改为这样

要的便是这种效果,请问如何把点与点之间用线连起来形成折线图。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-7 12:44:10 | 显示全部楼层
这么多的点你确定要连接起来,完全看不清楚的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-7 14:32:54 | 显示全部楼层
bonst 发表于 2020-9-7 12:44
这么多的点你确定要连接起来,完全看不清楚的

1.jpg
是的,我想现实这种电磁波的效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-7 14:56:00 | 显示全部楼层
那你试试这个函数np.exp(-t) * np.cos(4*np.pi*t),这个倒是跟电磁波比较像
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-18 21:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表