python - 为什么 matplotlib 需要这么长时间才能绘制?
问题描述
我正在阅读两个 files.txt ,每个都有大约 50,000 行,我将数据保存在某个列表中并稍后尝试绘制,但绘图未加载。
这是我的代码
xeqt = []
yeqt = []
xv = []
yv = []
with open('graficoEQT.txt') as f:
for i in f:
i = i.strip()
x,y = i.split(" ")
xeqt.append(round(float(x),3))
yeqt.append(y)
with open('ErroValidacao1.txt') as f:
for i in f:
i = i.strip()
x,y = i.split(" ")
xv.append(round(float(x),3))
yv.append(y)
plt.plot(yeqt, xeqt, color = 'blue')
plt.plot(yv, xv, color='red')
plt.show()
为什么需要这么长时间?我怎么能解决这个问题?
PS:这不是重复的,因为我的问题是关于我的情节所花费的时间,而不是因为情节是错误的。
解决方案
问题似乎不在绘图中,而是使用 for 循环读取文件,然后拆分每一行。相反,您可以使用loadtxt
NumPy 将值读入两个变量。
重要的是,plt.plot
将按线连接所有数据点。原则上,这可能是长期存在的原因之一。您可以尝试改用scatter
绘图。
您没有共享数据,因此我无法测试速度。不过,您应该尝试以下方法
import numpy as np
import matplotlib.pyplot as plt
xeqt, yeqt = np.loadtxt('graficoEQT.txt', unpack=True)
xeqt = np.round(xeqt, 3)
xv, yv = np.loadtxt('ErroValidacao1.txt', unpack=True)
xv = np.round(xv, 3)
plt.scatter(yeqt, xeqt, color = 'blue')
plt.scatter(yv, xv, color='red')
plt.show()
推荐阅读
- html - 如何使图标在 html 表格行中可见?
- java - 使用查询参数处理 Spring-boot 过滤器
- r - 如何使用 purrr::map() 将 cut() 分别应用于数据帧的每一行?
- python - 如何从不同的本地机器访问基于 Django 的网站?
- java - JSP/SpringMVC 找不到资源文件夹
- python - 等到属性改变
- rest - 带有 Camunda 应用程序的 Spring Boot
- python - 增加 Matplotlib 文本中的字符间距?
- vue.js - Vuejs b-form-input - 使用 v-model 时无法输入
- amazon-web-services - S3 触发的 SQS 事件记录的访问被拒绝