From dda60a976419681c2cd9c02423235a7b1cf70a34 Mon Sep 17 00:00:00 2001 From: bnewbold Date: Sun, 21 Feb 2016 14:38:30 -0800 Subject: add more graph tests --- examples/graphs/axis.jl | 1 + examples/graphs/change.jl | 33 +++++++++++++++++++++++++++++++++ examples/graphs/join.dat | 30 ++++++++++++++++++++++++++++++ examples/graphs/join.jl | 47 +++++++++++++++++++++++++++++++++++++++++++++++ src/PyX.jl | 5 ++++- test/runtests.jl | 3 +++ 6 files changed, 118 insertions(+), 1 deletion(-) create mode 100644 examples/graphs/change.jl create mode 100644 examples/graphs/join.dat create mode 100644 examples/graphs/join.jl diff --git a/examples/graphs/axis.jl b/examples/graphs/axis.jl index cc699bb..915414e 100644 --- a/examples/graphs/axis.jl +++ b/examples/graphs/axis.jl @@ -1,4 +1,5 @@ +# Original Python: #from pyx import * # #g = graph.graphxy(width=8, diff --git a/examples/graphs/change.jl b/examples/graphs/change.jl new file mode 100644 index 0000000..9034dc5 --- /dev/null +++ b/examples/graphs/change.jl @@ -0,0 +1,33 @@ + +# Original Python: +# from pyx import * +# +# g = graph.graphxy(width=8, +# x=graph.axis.linear(min=0, max=2), +# y=graph.axis.linear(min=0, max=2), +# key=graph.key.key(pos="br", dist=0.1)) +# g.plot([graph.data.function("x(y)=y**4", title=r"$x = y^4$"), +# graph.data.function("x(y)=y**2", title=r"$x = y^2$"), +# graph.data.function("x(y)=y", title=r"$x = y$"), +# graph.data.function("y(x)=x**2", title=r"$y = x^2$"), +# graph.data.function("y(x)=x**4", title=r"$y = x^4$")], +# [graph.style.line([color.gradient.Rainbow])]) +# g.writeEPSfile("change") +# g.writePDFfile("change") +# g.writeSVGfile("change") + +using PyX +using LaTeXStrings + +g = graph.graphxy(width=8, + x=graph_axis.linear(min=0, max=2), + y=graph_axis.linear(min=0, max=2), + key=graph_key.key(pos="br", dist=0.1)) +plot(g, [graph_data_function("x(y)=y**4", title=L"$x = y^4$"), + graph_data_function("x(y)=y**2", title=L"$x = y^2$"), + graph_data_function("x(y)=y", title=L"$x = y$"), + graph_data_function("y(x)=x**2", title=L"$y = x^2$"), + graph_data_function("y(x)=x**4", title=L"$y = x^4$")], + [graph_style.line([color_gradient.Rainbow])]) +writeEPSfile(g, "change") +writePDFfile(g, "change") diff --git a/examples/graphs/join.dat b/examples/graphs/join.dat new file mode 100644 index 0000000..1bdc1b9 --- /dev/null +++ b/examples/graphs/join.dat @@ -0,0 +1,30 @@ +0 -0.0416523 0.00370405 -0.0120944 +0.0344828 0.0758855 0.144363 0.203587 +0.0689655 0.105887 0.259478 0.3624 +0.103448 0.170788 0.360286 0.542374 +0.137931 0.20317 0.407522 0.704534 +0.172414 0.311803 0.481457 0.80502 +0.206897 0.338232 0.594614 0.821449 +0.241379 0.302589 0.612485 0.906532 +0.275862 0.335894 0.59561 0.898951 +0.310345 0.286523 0.537869 0.842022 +0.344828 0.241982 0.471199 0.78992 +0.37931 0.201726 0.391884 0.645232 +0.413793 0.115665 0.282956 0.499897 +0.448276 0.126654 0.176257 0.328663 +0.482759 0.066533 0.0198417 0.110219 +0.517241 -0.0331831 -0.0761098 -0.141317 +0.551724 -0.0927296 -0.219183 -0.241559 +0.586207 -0.179708 -0.270902 -0.460771 +0.62069 -0.162048 -0.456294 -0.575559 +0.655172 -0.20805 -0.530463 -0.780346 +0.689655 -0.242298 -0.528865 -0.822735 +0.724138 -0.315267 -0.588264 -0.905236 +0.758621 -0.305853 -0.643168 -0.903536 +0.793103 -0.291477 -0.592055 -0.857436 +0.827586 -0.289402 -0.484567 -0.76292 +0.862069 -0.270358 -0.430461 -0.675236 +0.896552 -0.231194 -0.328504 -0.512663 +0.931034 -0.17519 -0.221731 -0.330941 +0.965517 -0.0567209 -0.0880629 -0.200636 +1 0.0449826 -0.0469508 0.0426738 diff --git a/examples/graphs/join.jl b/examples/graphs/join.jl new file mode 100644 index 0000000..f33e498 --- /dev/null +++ b/examples/graphs/join.jl @@ -0,0 +1,47 @@ + +# Original Python: +# from pyx import * +# +# g = graph.graphxy(width=8, key=graph.key.key()) +# +# As = [0.3, 0.6, 0.9] +# +# d = [graph.data.join([graph.data.function("y_a(x_a)=A*sin(2*pi*x_a)", context=dict(A=A)), +# graph.data.file("join.dat", x_b=1, y_b=i+2)], +# title=r"$A=%g$" % A) +# for i, A in enumerate(As)] +# +# attrs = [color.gradient.RedBlue] +# +# g.plot(d, +# [graph.style.pos(usenames=dict(x="x_a", y="y_a")), +# graph.style.line(attrs), +# graph.style.pos(usenames=dict(x="x_b", y="y_b")), +# graph.style.symbol(graph.style.symbol.changesquare, symbolattrs=attrs, size=0.1)]) +# +# g.writeEPSfile() +# g.writePDFfile() +# g.writeSVGfile() + +using PyX + +g = graph.graphxy(width=8, key=graph_key.key()) + +As = [0.3, 0.6, 0.9] + +d = [graph_data.join([graph_data_function("y_a(x_a)=A*sin(2*pi*x_a)", context=Dict("A"=>A)), + graph_data.file("examples/graphs/join.dat", x_b=1, y_b=i+1)], + title=latexstring("\$A=$A\$")) + for (i, A) in enumerate(As)] + +attrs = [color_gradient.RedBlue] + +plot(g, d, + [graph_style.pos(usenames=Dict("x"=>"x_a", "y"=>"y_a")), + graph_style.line(attrs), + graph_style.pos(usenames=Dict("x"=>"x_b", "y"=>"y_b")), + graph_style.symbol(graph_style_symbol.changesquare, symbolattrs=attrs, size=0.1)]) + +writeEPSfile(g, "join") +writePDFfile(g, "join") + diff --git a/src/PyX.jl b/src/PyX.jl index 1f7239c..561087d 100644 --- a/src/PyX.jl +++ b/src/PyX.jl @@ -5,7 +5,7 @@ using PyCall using LaTeXStrings export canvas, path, deco, style, linewidth, linestyle, linejoin -export color, color_rgb, connector, text, box, graph, graph_axis, graph_data, graph_style +export color, color_rgb, color_gradient, connector, text, box, graph, graph_axis, graph_data, graph_style, graph_style_symbol, graph_key export graph_data_function export epsfile, deformer, trafo export plot, writeEPSfile, writePDFfile, writeSVGfile @@ -19,6 +19,7 @@ linestyle = pywrap(style.linestyle) linejoin = pywrap(style.linejoin) color = pywrap(pyimport("pyx.color")) color_rgb = pywrap(color.rgb) +color_gradient = pywrap(color.gradient) connector = pywrap(pyimport("pyx.connector")) text = pywrap(pyimport("pyx.text")) box = pywrap(pyimport("pyx.box")) @@ -26,7 +27,9 @@ graph = pywrap(pyimport("pyx.graph")) graph_axis = pywrap(graph.axis) graph_data = pywrap(graph.data) graph_data_function = graph.data[:function] +graph_key = pywrap(graph.key) graph_style = pywrap(graph.style) +graph_style_symbol = pywrap(graph_style.symbol) epsfile = pywrap(pyimport("pyx.epsfile")) deformer = pywrap(pyimport("pyx.deformer")) trafo = pywrap(pyimport("pyx.trafo")) diff --git a/test/runtests.jl b/test/runtests.jl index 561ddb3..d196656 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -3,8 +3,11 @@ include("../src/PyX.jl") using PyX include("../examples/3dgraphs/surface.jl") + include("../examples/graphs/axis.jl") +include("../examples/graphs/change.jl") include("../examples/graphs/function.jl") include("../examples/graphs/lissajous.jl") +include("../examples/graphs/join.jl") include("../examples/graphs/minimal.jl") include("../examples/graphs/points.jl") -- cgit v1.2.3