Source code for tecplot.legend.line_legend
from ..exception import *
from ..text import TextBox
from ..tecutil import sv
from .legend import Legend, LegendFont
[docs]class LineLegend(Legend):
"""Line plot legend attributes.
The XY line legend shows the line and symbol attributes of XY mappings. In
`XY line plots <XYLinePlot>`, this legend includes the bar chart
information. The legend can be positioned anywhere within the line plot
frame by setting the `position` attribute. By default, all mappings are
shown, but |Tecplot 360| removes redundant entries.
.. code-block:: python
:emphasize-lines: 23-38
import os
import tecplot
from tecplot.constant import *
examples_dir = tecplot.session.tecplot_examples_directory()
datafile = os.path.join(examples_dir, 'SimpleData', 'Rainfall.dat')
dataset = tecplot.data.load_tecplot(datafile)
frame = tecplot.active_frame()
plot = frame.plot()
frame.plot_type = tecplot.constant.PlotType.XYLine
for i in range(3):
plot.linemap(i).show = True
plot.linemap(i).line.line_thickness = .4
y_axis = plot.axes.y_axis(0)
y_axis.title.title_mode = AxisTitleMode.UseText
y_axis.title.text = 'Rainfall (in)'
y_axis.fit_range_to_nice()
legend = plot.legend
legend.show = True
legend.box.box_type = TextBox.Filled
legend.box.color = Color.Purple
legend.box.fill_color = Color.LightGrey
legend.box.line_thickness = .4
legend.box.margin = 5
legend.anchor_alignment = AnchorAlignment.MiddleRight
legend.row_spacing = 1.5
legend.show_text = True
legend.font.typeface = 'Arial'
legend.font.italic = True
legend.text_color = Color.Black
legend.position = (90, 88)
tecplot.export.save_png('legend_line.png', 600, supersample=3)
.. figure:: /_static/images/legend_line.png
:width: 300px
:figwidth: 300px
"""
def __init__(self, plot, *svargs):
self.plot = plot
super().__init__(sv.GLOBALLINEPLOT, sv.LEGEND, **plot._style_attrs)
@property
def show_text(self):
"""Show/hide mapping names in the legend.
:type: `boolean <bool>`
Example usage::
>>> from tecplot.constant import PlotType
>>> plot = frame.plot(PlotType.XYLine)
>>> plot.legend.show_text = True
"""
return self._get_style(bool, sv.SHOWTEXT)
@show_text.setter
def show_text(self, value):
self._set_style(bool(value), sv.SHOWTEXT)
@property
def font(self):
"""Legend font attributes.
.. note::
The font `size_units <tecplot.text.Font.size_units>` property
may only be set to `Units.Frame` or `Units.Point`.
:type: `text.Font`
Example usage::
>>> from tecplot.constant import PlotType
>>> plot = frame.plot(PlotType.XYLine)
>>> plot.legend.font.italic = True
"""
return LegendFont(self)
@property
def box(self):
"""Legend box attributes.
:type: `text.TextBox`
Example usage::
>>> from tecplot.constant import PlotType, Color
>>> plot = frame.plot(PlotType.XYLine)
>>> plot.legend.box.color = Color.Blue
"""
return TextBox(self)