DMUG-Archiv 2019

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: [Dmug] Warum klappt es nicht in einer Definition TwoAxisPlot[{f_, g_}, {x_, x1_, x2_}, Type_StringMatchQ[Type_, "Plot"|"LogPlot"|"LogLogPlot"]]:=Module[... zu verwenden???

Hallo Peter,

erstenseinmal fehlte ein Fragezeichen:

TwoAxisPlot[{f_,g_},{x_,x1_,x2_},Type_?StringMatchQ[Type_,"Plot"|"LogPlot"|"LogLogPlot"]]:=Module[<snip>]

(klarer wäre
TwoAxisPlot[{f_,g_},{x_,x1_,x2_},Type_String?StringMatchQ[Type_,"Plot"|"LogPlot"|"LogLogPlot"]]:=Module[<snip>])


wird vom Kernel entgegengenommen, ist aber nicht sinnvoll - Sie bekommen kein Bid damit, weil das zweite 'Type' nicht 
evaluiert wird, Erklärung finden Sie in https://reference.wolfram.com/language/ref/PatternTest.html, also

(1.a)

TwoAxisPlot[{f_, g_}, {x_, x1_, x2_}, Type_String] := Module[<snip>] /; StringMatchQ[Type, "Plot" | "LogPlot" | 
"LogLogPlot"]

(1.b)

TwoAxisPlot[{f_, g_}, {x_, x1_, x2_}, Type_String] := Module[<snip>] /; StringMatchQ["Plot" | "LogPlot" | 
"LogLogPlot"][Type]

oder

(2)
TwoAxisPlot[{f_, g_}, {x_, x1_, x2_},   Type_String /; StringMatchQ[Type, "Plot" | "LogPlot" | "LogLogPolot"]]  := Module[<snip>]

oder

(3 - from the Ministry of Silly Input) with Alternatives[] und festgesetztem Default

TwoAxisPlot[{f_, g_}, {x_, x1_, x2_}, Type_String: "Plot" | Type_String: "LogPlot" |  Type_String: "LogLogPolot"] := Module[<snip>]


Grüsse

Udo.



Am 24.11.2019 um 17:44 schrieb Peter Klamser via demug:
Warum klappt es nicht in einer Definition

TwoAxisPlot[{f_,g_},{x_,x1_,x2_},Type_StringMatchQ[Type_,"Plot"|"LogPlot"|"LogLogPlot"]]:=Module[..

zu verwenden???

fragt Peter und sagt Danke für die Antwort...
Anhang

Mit Auskommentieren geht es:

TwoAxisPlot//ClearAll
TwoAxisPlot[{f_,g_},{x_,x1_,x2_},Type_(*
*StringMatchQ[Type_,"Plot"|"LogPlot"|"LogLogPlot"]**)
]:=Module[{fgraph,ggraph,frange,grange,fticks,gticks},
{fgraph,ggraph}=Which[
Type=="Plot",MapIndexed[Plot[#,{x,x1,x2},Axes->True,PlotStyle->ColorData[1][#2[[1]]]]&,{f,g}],Type=="LogPlot",MapIndexed[LogPlot[#,{x,x1,x2},Axes->True,PlotStyle->ColorData[1][#2[[1]]]]&,{f,g}],Type=="LogLogPlot",MapIndexed[LogLogPlot[#,{x,x1,x2},Axes->True,PlotStyle->ColorData[1][#2[[1]]]]&,{f,g}]];{frange,grange}=(PlotRange/.AbsoluteOptions[#,PlotRange])[[2]]&/@{fgraph,ggraph};fticks=N@FindDivisions
[frange,5];
gticks=Quiet@Transpose
@{fticks,ToString[NumberForm[#,2],StandardForm]&/@Rescale[fticks,frange,grange]};
Show[fgraph,ggraph/.Graphics[graph_,s___]:>Graphics[GeometricTransformation[graph,RescalingTransform[{{0,1},grange},{{0,1},frange}]],s],Axes->False,Frame->True,FrameStyle->{ColorData[1]/@{1,2},{Automatic,Automatic}},FrameTicks->{{fticks,gticks},{Automatic,Automatic}}]]
TwoAxisPlot[{Cos[x]+100,Sin[x]+100},{x,-2,2},"Plot"]
TwoAxisPlot[{Cos[x]+100,Sin[x]+100},{x,-2,2},"LogPlot"]
TwoAxisPlot[{Cos[x]+100,Sin[x]+100},{x,-2,2},"LogLogPlot"]
_______________________________________________
DMUG Deutschsprachiges Mathematica-Forum demug@XXXXXXX.ch
http://www.mathematica.ch/mailman/listinfo/demug
Archiv: http://www.mathematica.ch/archiv.html
_______________________________________________
DMUG Deutschsprachiges Mathematica-Forum demug@XXXXXXX.ch
http://www.mathematica.ch/mailman/listinfo/demug
Archiv: http://www.mathematica.ch/archiv.html

Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html