Plot 1D Density

From Computational Biophysics and Materials Science Group
Jump to: navigation, search
Exmple

I think you guys can use the code in this way:

python plot1d.py -i ~/data.txt -o result.png --ignore=',' --ignore='(' --ignore=')' \
--format='* * x'

To dynamically read your data file. :-)

import sys, getopt #parameters
import numpy as np
from pylab import *
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt

def plot(input_file, ignore, line_format, output_png, silent):
	xs = []
	index_x = line_format.split().index('x')
	with open(input_file) as f:
		for line in f:
			for _ignore in ignore:
				line = line.replace(_ignore, ' ')
			_line = line.split()
			xs.append(_line[index_x])



	#only for generate two array
	x = randn(len(xs))

	# Translate into x, y from xs, ys
	for i in range(0,1000000):
		x[i] = xs[i]

	# hist and plot
	plt.hist(x, bins=x.max() - x.min() + 1)
	if output_png is None:
		pass
	else:
		savefig(output_png, dpi=400)
	if silent:
		pass
	else:
		plt.show()
	return plt


def main(argv):
	# By Xinhong
	help_str = '''==============================================



plot1d.py -i <inputfile> [-s] [-o <output.png>] [--ignore] [--format]




=============================================='''
	input_file = None
	ignore = []
	line_format ='* * x'
	output_png = None
	silent = False
	try:
	  	opts, args = getopt.getopt(argv,"hi:o:s",["ifile=", "ignore=", "format="])
	except getopt.GetoptError:
	  	print(help_str)
	  	sys.exit(2)
	for opt, arg in opts:
		if opt == '-h':
		 	print(help_str)
		 	sys.exit()
		elif opt == '-o':
			output_png = arg
		elif opt in ("-i", "--ifile"):
			input_file = arg
		elif opt == '--ignore':
			ignore.append(arg)
		elif opt == '--format':
			line_format = arg
		elif opt == '-s':
			silent = True
	if input_file is None:
		print('Please specify input file.')
		sys.exit(2)

	figure = plot(input_file, ignore, line_format, output_png, silent)



if __name__ == "__main__":
   main(sys.argv[1:])

if you want to process a batch of files and only output the image without open it, try this:

FILES=/Users/Hung/Desktop/result/*
for f in $FILES;
do
	python3.3 /Users/Hung/Documents/git/random_walk/draw/plot1D.py -s -i $f -o ${f}_1d.png --format="* * x";
done