Opened 11 years ago

# Make plot1d function

Reported by: Owned by: kcrisman jason, was minor sage-6.4 graphics one-dimension, plot, graphics jason, ppurka N/A

### Description

Sometimes it would be nice to have the ability to plot one-dimensional things easily, like solutions to an inequality or something. This would have just one (horizontal) axis and have options allowing plotting of individual points (perhaps if input is a list) or find a way to plot inequalities (maybe via thicker lines and/or tick marks at appropriate places).

Ideally, this would add with a 2D `Graphics` object by putting it below it and have the axes align, but this might be too hard to do with matplotlib.

### comment:1 Changed 11 years ago by jason

+1 to the idea. It would be easy to have axes align in matplotlib (it's done all the time), but it might be slightly more difficult to expose that functionality in Sage, where each subplot doesn't know about other subplots.

### comment:2 Changed 10 years ago by kcrisman

From a participant in a workshop:

```Say, if I want to show the multiples of 5 on the number line. How should I do that in SAGE?

For example: points([(5*n,0) for n in [-3..3]]) gives me the y-axis which I don't want
```

jason says, regarding possible solutions,

```I would just turn axes off and make your own line:

points([(5*n,0) for n in [-3..3]],axes=False)+line((-3,0),(3,0))

You'd have to do your own ticks, though.  You might also set ymin and ymax to something small (ymin=-.01,ymax=.01)

It would be pretty straightforward for us to make an option that turns off axes selectively.  I could imagine an interface like:

axes=False # turn off all axes
axes=True # turn on all axes
axes=[True,False] # turn on horizontal axis, turn off vertical axis

or maybe it should be:

axes='horizontal' # turn on only horizontal axis
axes='vertical' # turn on only vertical axis.
```

### comment:4 Changed 9 years ago by kcrisman

Here is a contribution to this issue from user "jaia" at this ask.sagemath.org question:

```def plot_1d(xmin, xmax, ymin=-1, ymax=1):
p=plot((ymax+ymin)/2, (xmin, xmax), color="black", axes=False) + point((0,ymax), color="white") + point((0,ymin), color="white")
return p
```

used

```plot_1d(-1,1200,-1,1) + point((0,0), color="black", size=20) + text("0", (0,-0.05), color="black") + point((1000,0), color="black", size=20) + text("K", (1000,-0.05), color="black") + arrow((700, 0), (1000,0)) + arrow((0, 0), (300,0)) + arrow((350, 0), (650,0)) + arrow((1100, 0), (1000,0))
```

### comment:6 Changed 8 years ago by jdemeyer

• Milestone changed from sage-5.11 to sage-5.12

### comment:7 Changed 7 years ago by vbraun_spam

• Milestone changed from sage-6.1 to sage-6.2

### comment:8 Changed 7 years ago by vbraun_spam

• Milestone changed from sage-6.2 to sage-6.3

### comment:9 Changed 7 years ago by vbraun_spam

• Milestone changed from sage-6.3 to sage-6.4
Note: See TracTickets for help on using tickets.