Python - 允许用户在绘图前选择条件

时间:2014-07-23 06:47:10

标签: python graph matplotlib

如何在绘图前允许用户选择条件?

例如。从00:15:00到01:00:00选择时间         &安培;选择AMB_TEMP然后使用这些信息绘制图表

这是代码:

import matplotlib.pyplot as plt
from datetime import time, datetime

x = []
y = []
t = []

fig = plt.figure()
rect = fig.patch
rect.set_facecolor('#31312e')

readFile = open('data.txt', 'r')
sepFile = readFile.read().split('\n')
readFile.close()

for idx, plotPair in enumerate(sepFile):
    if idx > 5:
        xAndY = plotPair.split(';')
        time_string = xAndY[0]
        time_string = time_string.replace(' ', '')  # remove blanks
        datetime_obj = datetime.strptime(time_string, '%H:%M:%S')
        t.append(datetime_obj)
        x.append(float(xAndY[2]))
        y.append(float(xAndY[3]))

ax1 = fig.add_subplot(1, 1, 1, axisbg='blue')
ax1.plot(t, y, 'c', linewidth=3.3)

plt.title('Alternate Energy')
plt.xlabel('time mins')

plt.show()
  • 代码所做的只是从2列绘制,用户无法操纵任何数据

这是我的txt文件数据:

[messung]
Uhrzeit;
Intervall;AMB_TEMP;IRAD;W_D;W_S;Poly_M_Tem;TF_M_Temp;
s;DegC;W/m2;Deg;m/s;DegC;DegC
[Start]
00:00:00;900;25.3;55.8;4.5;0.4;;
00:15:00;900;26.1;55.8;5.5;1.0;;
00:30:00;900;26.1;55.8;6.1;1.0;;
00:45:00;900;26.1;55.9;5.7;0.9;;
01:00:00;900;26.1;55.9;5.8;0.7;;
01:15:00;900;26.1;55.8;6.4;0.8;;
01:30:00;900;26.1;55.8;6.1;0.8;;
01:45:00;900;26.1;55.8;5.7;1.0;;
02:00:00;900;26.0;55.8;5.8;1.1;;
.
.
.
22:45:00;900;25.0;55.7;6.1;0.6;;
23:00:00;900;25.0;55.8;5.2;0.4;;
23:15:00;900;25.2;55.8;5.7;0.5;;
23:30:00;900;25.3;55.8;6.2;0.5;;
23:45:00;900;25.4;55.8;5.8;0.4;;

1 个答案:

答案 0 :(得分:0)

我想你要找的是:raw_input,它允许你提出一个例子并从用户那里得到一个输入;)

s = raw_input('Select a time from 00:15:00 to 01:00:00')

然后你必须循环,而输入不在你的条件之间。对于您需要的第二个输入也是如此。

您可以在此处查看更多内容:https://docs.python.org/2/library/functions.html#raw_input

如果您需要,您还可以创建一个GUI界面,使其更加美观。