python - 使用 matplotlib 库绘制列表(不按顺序)时如何更正 y 间隔?
问题描述
绘制图形时 y 值不按顺序排列
COLst3 是不按顺序排列的数字列表。示例 COLst3 列表:
['312', '313', '313', '312', '311', '313', '311', '311', '311', '310']
x 轴是时间,y 轴是 COLst3。创建的空列表是创建 x 值点。
我需要帮助以在一致的 y 间隔上正确绘制值。
import time
import matplotlib.pyplot as plt
import numpy as np
def COfunction():
x=0
z=1
y=60 #change y according to the estimated number of CO values recorded
COLst = []
COLst3 = []
empty = []
while x < y:
open_file=open(r'C:\Users\MindStorm\Desktop\capture.txt','r')
file_lines=open_file.readlines()
file = file_lines[x].strip() # First Line
COLst = file.split()
COLst2 = COLst.pop(1)
COLst3.append(COLst2)
empty.append(z)
x += 6
z += 1
#plots using matplotlib library
plt.title('CO Displacement value Graph')
plt.xlabel('Time(seconds)')
plt.ylabel('Sensor values(volts)')
plt.plot(empty, COLst3)
plt.show()
#main functions
COfunction()
代码成功运行,但我需要正确的 y 值间隔来绘制两个列表。
Matplotlib 版本:2.2.3
解决方案
问题是您的值是字符串,这就是它们乱序的原因。分别使用int
或将它们转换为整数或浮点类型。float
COLst3 = ['312', '313', '313', '312', '311', '313', '311', '311', '311', '310']
COLst3 = list(map(int, COLst3)) # <--- Convert strings to integer
empty = range(len(COLst3))
plt.title('CO Displacement value Graph')
plt.xlabel('Time(seconds)')
plt.ylabel('Sensor values(volts)')
plt.plot(empty, COLst3)
plt.yticks(range(min(COLst3), max(COLst3)+1)) # <--- To show integer tick labels
plt.show()
推荐阅读
- wordpress - 我的 Wordpress 在 2 或 3 天后自动更改文件权限
- php - Cakephp 2.x Security::cipher 不提供跨两个应用程序的结果
- javascript - 如何创建链接以下载另一个域上的资源 a href another-sub-domain
- php - 哪个是从 woocommerce_before_calculate_totals 和 woocommerce_product_get_price 更改 woo-commerce 购物车价格的推荐过滤器?
- javascript - 如何通过鼠标单击来中断 ajax 请求
- java - Spring Boot 分页
- javascript - 如何使用标准函数获取元素的 indexOf
- atomic - 在节点关闭的情况下,Ignite 中的原子是否一致?
- sql-server - SQL Server 是否“正常”存储系统版本(临时)表的历史表?
- ionic3 - 我的应用程序 ionic 3 出现问题,当我添加 ionic cordova 资源时,将 android 添加到应用程序图标的使用中,出现此错误: