예제 #1
0
    def test_custom_psychrochart_3(self):
        """Customize a chart with some additions from a default style."""
        # Load config
        config = load_config("interior")

        # Chart creation
        chart = PsychroChart(config)

        # Zones:

        # Plotting
        chart.plot()

        arrows = {'exterior': [(31.06, 32.9), (29.06, 31.9)],
                  'exterior_estimated': [(36.7, 25.0), (34.7, 30.0)],
                  'interior': [(29.42, 52.34), (31.42, 57.34)]}

        arrows_plot = chart.plot_arrows_dbt_rh(arrows)
        print('arrows in chart: %s' % arrows_plot)

        # Legend
        chart.plot_legend(markerscale=1., fontsize=11, labelspacing=1.3)

        # Save to disk
        path_svg = os.path.join(
            basedir, 'test_chart_overlay_arrows_1.svg')
        chart.save(path_svg)

        chart.remove_annotations()
        points_arrows = {
            'exterior': {'label': 'Exterior',
                         'style': {
                             'color': [0.855, 0.004, 0.278, 0.8],
                             'marker': 'X', 'markersize': 15},
                         'xy': [(30.06, 34.9), (31.06, 35.9)]},
            'exterior_estimated': {
                'label': 'Estimated (Weather service)',
                'style': {'color': [0.573, 0.106, 0.318, 0.5],
                          'marker': 'x', 'markersize': 10},
                'xy': [(32.7, 27.0), (31.7, 28.0)]},
            'interior': {'label': 'Interior',
                         'style': {
                             'color': [0.592, 0.745, 0.051, 0.9],
                             'marker': 'o', 'markersize': 30},
                         'xy': [(29.92, 50.34), (28.92, 50.34)]}}

        arrows_plot = chart.plot_arrows_dbt_rh(points_arrows)
        print('arrows in chart 2: %s' % arrows_plot)

        # Save to disk
        path_svg = os.path.join(
            basedir, 'test_chart_overlay_arrows_2.svg')
        chart.save(path_svg)
예제 #2
0
def make_psychrochart(svg_image, altitude, pressure_kpa, points, connectors,
                      arrows):
    """Create the PsychroChart SVG file and save it to disk."""
    from psychrochart.agg import PsychroChart
    from psychrochart.util import load_config

    # Load chart style:
    chart_style = load_config(CHART_STYLE_JSON)
    if altitude is not None:
        chart_style['limits']['altitude_m'] = altitude
    elif pressure_kpa is None:
        chart_style['limits']['pressure_kpa'] = pressure_kpa

    # Make chart
    chart = PsychroChart(chart_style, OVERLAY_ZONES_JSON, logger=_LOGGER)

    # Append lines
    t_min, t_opt, t_max = 16, 23, 30
    chart.plot_vertical_dry_bulb_temp_line(t_min, {
        "color": [0.0, 0.125, 0.376],
        "lw": 2,
        "ls": ':'
    },
                                           ' TOO COLD, {:g}°C'.format(t_min),
                                           ha='left',
                                           loc=0.,
                                           fontsize=14)
    chart.plot_vertical_dry_bulb_temp_line(t_opt, {
        "color": [0.475, 0.612, 0.075],
        "lw": 2,
        "ls": ':'
    })
    chart.plot_vertical_dry_bulb_temp_line(t_max, {
        "color": [1.0, 0.0, 0.247],
        "lw": 2,
        "ls": ':'
    },
                                           'TOO HOT, {:g}°C '.format(t_max),
                                           ha='right',
                                           loc=1,
                                           reverse=True,
                                           fontsize=14)

    chart.plot_points_dbt_rh(points, connectors)
    if arrows:
        chart.plot_arrows_dbt_rh(arrows)
    chart.plot_legend(frameon=False,
                      fontsize=8,
                      labelspacing=.8,
                      markerscale=.7)

    chart.save(svg_image, format='svg')
    return True
예제 #3
0
    def test_custom_psychrochart_3(self):
        """Customize a chart with some additions from a default style."""
        # Load config
        config = load_config("interior")

        # Chart creation
        chart = PsychroChart(config)

        # Zones:

        # Plotting
        chart.plot()

        arrows = {
            "exterior": [(31.06, 32.9), (29.06, 31.9)],
            "exterior_estimated": [(36.7, 25.0), (34.7, 30.0)],
            "interior": [(29.42, 52.34), (31.42, 57.34)],
        }
        chart.plot_arrows_dbt_rh(arrows)

        # Legend
        chart.plot_legend(markerscale=1.0, fontsize=11, labelspacing=1.3)

        # Save to disk
        path_svg = TEST_BASEDIR / "test_chart_overlay_arrows_1.svg"
        chart.save(path_svg)

        chart.remove_annotations()
        points_arrows = {
            "exterior": {
                "label": "Exterior",
                "style": {
                    "color": [0.855, 0.004, 0.278, 0.8],
                    "marker": "X",
                    "markersize": 15,
                },
                "xy": [(30.06, 34.9), (31.06, 35.9)],
            },
            "exterior_estimated": {
                "label": "Estimated (Weather service)",
                "style": {
                    "color": [0.573, 0.106, 0.318, 0.5],
                    "marker": "x",
                    "markersize": 10,
                },
                "xy": [(32.7, 27.0), (31.7, 28.0)],
            },
            "interior": {
                "label": "Interior",
                "style": {
                    "color": [0.592, 0.745, 0.051, 0.9],
                    "marker": "o",
                    "markersize": 30,
                },
                "xy": [(29.92, 50.34), (28.92, 50.34)],
            },
        }
        chart.plot_arrows_dbt_rh(points_arrows)

        # Save to disk
        path_svg = TEST_BASEDIR / "test_chart_overlay_arrows_2.svg"
        chart.save(path_svg)