### Navigation

- index
- modules |
- next |
- previous |
- 2D Graphics »

# Text in plots

class `sage.plot.text.``Text`(string, point, options)

  Bases: `sage.plot.primitive.GraphicPrimitive`

  Base class for Text graphics primitive.

  TESTS:

  We test creating some text:

      sage: text("I like Fibonacci",(3,5))
      Graphics object consisting of 1 graphics primitive

  `get_minmax_data`()

    Returns a dictionary with the bounding box data. Notice that, for text, the box is just the location itself.

    EXAMPLES:

        sage: T = text("Where am I?",(1,1))
        sage: t=T[0]
        sage: t.get_minmax_data()['ymin']
        1.0
        sage: t.get_minmax_data()['ymax']
        1.0

  `plot3d`(**kwds)

    Plots 2D text in 3D.

    EXAMPLES:

        sage: T = text("ABC",(1,1))
        sage: t = T[0]
        sage: s=t.plot3d()
        sage: s.jmol_repr(s.testing_render_params())[0][2]
        'label "ABC"'
        sage: s._trans
        (1.0, 1.0, 0)

`sage.plot.text.``text`(string, xy, clip=False, vertical_alignment='center', rgbcolor=(0, 0, 1), fontsize=10, horizontal_alignment='center', axis_coords=False, **options)

  Returns a 2D text graphics object at the point \((x,y)\).

  Type `text.options` for a dictionary of options for 2D text.

  2D OPTIONS:

  - `fontsize` - How big the text is
  - `rgbcolor` - The color as an RGB tuple
  - `hue` - The color given as a hue
  - `rotation` - How to rotate the text: angle in degrees, vertical, horizontal
  - `vertical_alignment` - How to align vertically: top, center, bottom
  - `horizontal_alignment` - How to align horizontally: left, center, right
  - `axis_coords` - (default: False) if True, use axis coordinates, so that (0,0) is the lower left and (1,1) upper right, regardless of the x and y range of plotted values.

  EXAMPLES:

      sage: text("Sage is really neat!!",(2,12))
      Graphics object consisting of 1 graphics primitive

  The same text in larger font and colored red:

      sage: text("Sage is really neat!!",(2,12),fontsize=20,rgbcolor=(1,0,0))
      Graphics object consisting of 1 graphics primitive

  Same text but guaranteed to be in the lower left no matter what:

      sage: text("Sage is really neat!!",(0,0), axis_coords=True, horizontal_alignment='left')
      Graphics object consisting of 1 graphics primitive

  Same text rotated around the left, bottom corner of the text:

      sage: text("Sage is really neat!!",(0,0), rotation=45.0, horizontal_alignment='left', vertical_alignment='bottom')
      Graphics object consisting of 1 graphics primitive

  Same text oriented vertically:

      sage: text("Sage is really neat!!",(0,0), rotation="vertical")
      Graphics object consisting of 1 graphics primitive

  You can also align text differently:

      sage: t1 = text("Hello",(1,1), vertical_alignment="top")
      sage: t2 = text("World", (1,0.5), horizontal_alignment="left")
      sage: t1 + t2   # render the sum
      Graphics object consisting of 2 graphics primitives

  You can save text as part of PDF output:

      sage: text("sage", (0,0), rgbcolor=(0,0,0)).save(os.path.join(SAGE_TMP, 'a.pdf'))

  Text must be 2D (use the text3d command for 3D text):

      sage: t = text("hi",(1,2,3))
      Traceback (most recent call last):
      ...
      ValueError: use text3d instead for text in 3d
      sage: t = text3d("hi",(1,2,3))

  Extra options will get passed on to show(), as long as they are valid:

      sage: text("MATH IS AWESOME", (0, 0), fontsize=40, axes=False)
      Graphics object consisting of 1 graphics primitive
      sage: text("MATH IS AWESOME", (0, 0), fontsize=40).show(axes=False) # These are equivalent

### Navigation

- index
- modules |
- next |
- previous |
- 2D Graphics »