问题
i have a file with the following data the first field is UNIXTimestamp,
1351734672.095 25
1351734674.449 52
1351734676.638 612
1351734680.669 44
1351734681.121 16
1351734684.182 15
1351734684.386 17
1351734686.823 16
1351734689.807 22
1351734689.807 28
how do i load the x,y from this file to python?
#!/usr/bin/env python
from numpy import *
import Gnuplot
g = Gnuplot.Gnuplot()
g.title('My Systems Plot')
g.xlabel('Date')
g.ylabel('Value')
g('set term png')
g('set out "output.png"')
proc = open("response","r")
databuff = Gnuplot.Data(proc.read(), title="test")
g.plot(databuff)
currently this is not working...any ideas??
UPDATE:
#!/usr/bin/env python
from numpy import *
import Gnuplot
g = Gnuplot.Gnuplot()
g.title('My Systems Plot')
g.xlabel('Date')
g.ylabel('Response')
g('set auto x')
g('set term png')
g('set out "output.png"')
g('set timefmt "%s"')
g('set xdata time')
g('set xtic rotate by 45 scale 1 font ",2"')
g('set key noenhanced')
g('set format x "%H:%M:%S"')
g('set grid')
databuff = Gnuplot.File("repo", using='1:2',title="test")
g.plot(databuff)

The time values on xaxis are overlapping with the graph..any ideas??
回答1:
Using Gnuplot.File
instead of Gnuplot.Data
, it is possible to get the following plot:

#!/usr/bin/env python
#from numpy import *
import Gnuplot
g = Gnuplot.Gnuplot()
g.title('My Systems Plot')
g.xlabel('Date')
g.ylabel('Value')
g('set term png')
g('set out "output.png"')
#proc = open("response","r")
#databuff = Gnuplot.Data(proc.read(), title="test")
databuff = Gnuplot.File("response", using='1:2',with_='line', title="test")
g.plot(databuff)
UPDATE:
For the overlap, you can change 45
to -45
:
#g('set xtic rotate by 45 scale 1 font ",2"')
g('set xtic rotate by -45 scale 1 font ",2"')

来源:https://stackoverflow.com/questions/13204764/python-gnuplot-read-from-file