首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何计算txt文件中的x值绘制阶跃函数图

如何计算txt文件中的x值绘制阶跃函数图
EN

Stack Overflow用户
提问于 2018-06-08 01:07:57
回答 1查看 29关注 0票数 0

我想用txt文件中的值制作一个阶跃函数图,运行将生成图的方程式。

问题是,当我运行脚本时,绘图不是一个从0到0.110,从0.110到0.143,从0.143到1的阶跃函数,它是从0到0,0到0.11,0.11到0.143。因此,基本上,它只绘制基于x0的阶跃函数,不包括x1。阶跃函数应类似于x0 -> x1,例如,0 ->0.110,0.110 -> 0.143,0.143 -> 1。

有没有办法更改x=df.'x0‘,使其也包含x1值?我想保持我的代码的方式,而不是改变整个脚本使用其他方法,如果可能的话。

我的txt文件看起来像这样

      x0     x1        y0        y1
   0.000  0.110 -0.000050 -0.046207
   0.110  0.143 -0.046206 -0.049596
   0.143  1.000 -0.049596  0.000000

我想要使用的公式是

1. (((y1-yo)/(x1-x0)*(1-x0))+y0)
2. (-u + K/2)/e

下面是我的脚本

import numpy as np
import matplotlib.pyplot as plt 
import csv

import pandas as pd

x=[]
y=[]
K=-2.69028905
e=1

df = pd.read_csv('vol_values.txt', delim_whitespace=True)
print(df)
df['u'] = df.apply(lambda row: (((row.y1-row.y0)/(row.x1-row.x0)*(1-row.x0))+row.y0 ) , axis=1)
df['V'] = df.apply(lambda row: -row.u + K/2, axis=1)
df
print(df)
x=df['x0']
x1=df['x1']
y=df['V']
plt.step(x,y)
EN

回答 1

Stack Overflow用户

发布于 2018-06-08 06:49:43

尝尝这个

print(df[['x0', 'x1', 'V']])

x0     x1         V
0  0.000  0.110 -0.925485
1  0.110  0.143 -1.207511
2  0.143  1.000 -1.345145

x = [df.x0.iloc[0]] + df.x1.tolist()
# [0.0, 0.11, 0.143000, 1.0]

y = [df.V.iloc[0]] + df.V.tolist()
# [-0.9254854, -0.9254854, -1.207511, -1.34514]

plt.step(x, y)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50746748

复制
相关文章

相似问题

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