Hello Benedikt,

I'm not sure, that my solution is the best, but in principle, the following procedure should work:
 - you create the graph with a single key (graphxy.graphxy(  key=graph.key.key() )
 - you create 'reference-curves' OUTSIDE the plot-area, which have the appropriate properties (e.g. solid, dotted,... and red, green,...) with the respective titles - this will create your key
 - in each 'standard' plot-command, you use the title None (title=None) - with that, the curves do not appear in the key.

So in general, I would try something like:

from pyx import *
col1 = [style.linestyle.solid]
col2 = [style.linestyle.dotted]
row1 = [color.rgb.red]
row2 = [color.rgb.blue]
g = graph.graphxy( width=8,
                   x=graph.axis.linear(min=0, max=2),
                   y=graph.axis.linear(min=0, max=2),
g.plot( graph.data.function("y(x)=20", title=r"**2" ),
    [graph.style.line( col1 )] )
g.plot( graph.data.function("y(x)=20", title=r"**4"),
    [graph.style.line( col2 )] )

g.plot( graph.data.function("y(x)=20", title=r"x(y)"),
    [graph.style.line( row1 )] )
g.plot( graph.data.function("y(x)=20", title=r"y(x)"),
    [graph.style.line( row2 )] )

g.plot( graph.data.function("y(x)=x**
2", title=None),
    [graph.style.line( col1 + row1 )] )
g.plot( graph.data.function("y(x)=x**4", title=None),
    [graph.style.line( col2 + row1 )] )
g.plot( graph.data.function("x(y)=y**2", title=None),
    [graph.style.line( col1 + row2 )] )
g.plot( graph.data.function("x(y)=y**4", title=None),
    [graph.style.line( col2 + row2 )] )




On Tue, Oct 28, 2008 at 11:42 AM, Benedikt Koenig <lists@benair.net> wrote:

is there a way to show keys not for every single graph, but for groups
of graphs? For example, I want a single key, that states that all the
solid lines use VAR[0,:] and another key for all the dashed lines, that
use VAR[1,:]. Then two more keys should show, that the red lines are for
VAR[:,0] and the green ones for VAR[:,1]. So if I have 25 combinations
VAR_1A ... VAR_5E I'd like to have only 10 key instead of 25

An example:

instead of:
solid red = VAR[0,0]
dashed red = VAR[1,0]
dotted red = VAR[2,0]
solid green = VAR[0,1]
dashed green = VAR[1,1]
dotted green = VAR[2,1]

I want something like:
red = VAR[:,0]
green = VAR[:,1]
solid = VAR[0,:]
dashed = VAR[1,:]
dotted = VAR[2,:]

Any hints are greatly appreciated.

This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
PyX-user mailing list