首页 > 解决方案 > 如何从 .t​​xt 文件中绘制图形(y 轴设置)?

问题描述

我正在尝试绘制图形以显示.txt文件中的值,现在我在设置 y 轴格式时遇到问题,尽管我使用与文件命令相同的命令.CSV。如果我y-lim通过 using设置my_y_ticks = np.arange(-100, 1000, 100),则间隔不是100,而且很难识别 y 轴值。我从.txt数据库中粘贴了一些原始值。

01/05/2016  00:01:00    313,000000  U   42491,000694    -1,87   
01/05/2016  00:02:00    313,000000  U   42491,001389    -1,87   
01/05/2016  00:03:00    313,000000  U   42491,002083    -1,87   
01/05/2016  00:04:00    313,000000  U   42491,002778    -1,87   
01/05/2016  00:05:00    313,000000  U   42491,003472    -1,87   
01/05/2016  00:06:00    313,000000  U   42491,004167    -1,87   

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

df = pd.read_csv('WHV_Wasserstand_2016-2018.txt', sep = '\t') #open file
x = df.iloc[:,0] #choose values from txt file
y = df.iloc[:,2] #choose values from txt file
x = pd.to_datetime(x)   #transfer to date-time format
plt.ylim((-100,1000))
my_y_ticks = np.arange(-100, 1000, 100) #this code doesn't work!
plt.plot(x,y)   
plt.xticks(rotation = 90)
plt.show()

这是我的实际结果:

实际结果

标签: pythonmatplotlib

解决方案


我没有测试过,但立即脱颖而出的是您的参数np.arange()不会产生 100 个值的间隔。当给定三个值时,numpy.arange()使用第一个参数作为间隔的开始,第二个作为间隔的结束,第三个作为“步长”,表示这个间隔中数字之间的间距。您的函数将为您提供如下值:

>>> np.arange(-100,1000,100)
array([-100, 0, 100, 200, 300, 400, 500, 600, 700, 800, 900])

它在 900 处停止,因为结束间隔是独占的。考虑这些是否是您要传递的值my_y_ticks


推荐阅读