我有一个如下所示的数据框:
DF:
Start End Value
0 0 98999 0
1 99000 101999 1
2 102000 155999 0
3 156000 161999 1
4 162000 179999 0
我想绘制一个来自"开始"的矩形波。到"结束"而且价值在"价值" 请你帮助我好吗?谢谢!
我的尝试:
for j in range(0,df.shape[0]):
plt.figure()
plt.plot(range(df['Start'].iloc[j],df['End'].iloc[j]), np.ones(df['End'].iloc[j]-df['Start'].iloc[j])*df['Value'].iloc[j])
但是它用不同的数字绘制......
答案 0 :(得分:1)
也许您可以使用plt.step
绘制逐步函数:
import pandas as pd
from matplotlib import pyplot as plt
df = pd.DataFrame({'End': [98999, 101999, 155999, 161999, 179999],
'Start': [0, 99000, 102000, 156000, 162000],
'Value': [0, 1, 0, 1, 0]})
plt.step(df.Start, df.Value, where='post')
这会将每个Value
的{{1}}值映射到下一个Start
。
答案 1 :(得分:0)
答案 2 :(得分:0)
我相信step
下的matplotlib.pyplot
功能正是您所寻找的。 p>
您可以尝试以下代码:
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame([[0, 98999, 0],[99000, 101999, 1],[102000, 155999, 0],[156000, 161999, 1],[162000, 179999, 0]],columns=["Start","End","Value"])
plt.step(df["Start"],df["Value"],where="post")
plt.show()