diff --git a/kissplotcsv b/kissplotcsv
index 8e7a7c8985ff3a874c4cdd22394e87a682f78978..11de28d122aa439d6933bb95ad27b39decfe6760 100755
--- a/kissplotcsv
+++ b/kissplotcsv
@@ -1,22 +1,63 @@
 #!/bin/bash -e
 
+print_help () {
+	echo "Usage: kisscsvplot -f [filename]"
+}
+
 if ! command -v gnuplot &> /dev/null; then
 	echo "gnuplot is required in \$PATH"
 	exit
 fi
 
-if [[ $# < 1 ]]; then
-	echo "Usage: kisscsvplot [FILE]"
+mode="2:3"
+xLabel='Z_{im}'
+yLabel='Z_{re}'
+logscale=""
+
+while getopts "?rihy:x:f:" opt; do
+	case "$opt" in
+	h|\?)
+		print_help
+		exit 0
+		;;
+	f)
+		file=$OPTARG
+		;;
+	r)
+		mode="1:2"
+		xLabel='Omega'
+		yLabel='Z_{re}'
+		logscale="set logscale x;"
+		;;
+	i)
+		mode="1:3"
+		xLabel='Omega'
+		yLabel='Z_{im}'
+		logscale="set logscale x;"
+	;;
+	y)
+		yLabel=$OPTARG
+	;;
+	x)
+		xLabel=$OPTARG
+	;;
+	esac
+done
+
+if [[ ! -f $file && $file != "-" ]]; then
+	echo "a -f option must be given and it must be a regular file or - for stdin"
+	exit 1
 fi
 
 gnuplot -p -e "\
 set terminal qt enhanced font \",15\" title \"EIS Plot\"; \
 set style line 1 lw 3 lc \"blue\"; \
-set ylabel 'Z_{im}'; \
-set xlabel 'Z_{re}'; \
+set ylabel '$yLabel'; \
+set xlabel '$xLabel'; \
+$logscale \
 set tics font \"Helvetica,12\"; \
 set xlabel font \"Helvetica,15\"; \
 set ylabel font \"Helvetica,15\"; \
 set datafile separator ','; \
-plot '$1' using 2:3 notitle w l ls 3;
+plot '$file' using $mode skip 3 notitle w l;
 "