Exemple #1
0
    def _draw_background(self, context):
        pc = _PlotComposite()

        nl = self.ribs_l
        b = _series(-90 // 2, 90 // 2, 2 * math.pi / 180.)
        for l0 in _series(-nl, nl, math.pi / nl):
            c = Curve([l0] * len(b), b, **self.ribs_style)
            #c = apply( Curve, ([l0]*len(b), b), self.ribs_style )
            pc.add(c)

        nb = self.ribs_b
        l = _series(-180 // 2, 180 // 2, 2 * math.pi / 180.)
        for b0 in _series(-nb, nb, 0.5 * math.pi / (nb + 1)):
            c = Curve(l, [b0] * len(l), **self.ribs_style)
            #c = apply( Curve, (l, [b0]*len(l)), self.ribs_style )
            pc.add(c)

        pc.render(context)
Exemple #2
0
def test_sigmacritinv_npts(epsfile=None):
    """
    Test accuracy of sigmacrit inv as a function of number
    of points
    """

    from biggles import FramedPlot, PlotKey, PlotLabel, Curve, FramedArray, Table

    c1000 = Cosmo(npts=1000)
    c5 = Cosmo(npts=5)
    c4 = Cosmo(npts=4)
    c3 = Cosmo(npts=3)
    c2 = Cosmo(npts=2)

    tab = Table(2, 2)
    tab.uniform_limits = 0
    tab.cellspacing = 1

    p5 = FramedPlot()
    p5.xlabel = 'zsource'
    p5.ylabel = '% diff'
    p4 = FramedPlot()
    p4.xlabel = 'zsource'
    p4.ylabel = '% diff'
    p3 = FramedPlot()
    p3.xlabel = 'zsource'
    p3.ylabel = '% diff'
    p2 = FramedPlot()
    p2.xlabel = 'zsource'
    p2.ylabel = '% diff'

    l5 = PlotLabel(0.2, 0.7, 'npts = 5')
    p5.add(l5)
    l4 = PlotLabel(0.2, 0.1, 'npts = 4')
    p4.add(l4)
    l3 = PlotLabel(0.2, 0.9, 'npts = 3')
    p3.add(l3)
    l2 = PlotLabel(0.2, 0.9, 'npts = 2')
    p2.add(l2)

    colors = [
        'black', 'violet', 'blue', 'green', 'orange', 'magenta', 'firebrick',
        'red'
    ]
    zlvals = numpy.arange(0.1, 0.9, 0.1)
    if zlvals.size != len(colors):
        raise ValueError("mismatch colors and zlvals")

    i = 0

    allc5 = []
    for zl in zlvals:

        zs = numpy.arange(zl + 0.01, 2.0, 0.01)

        scinv = c1000.sigmacritinv(zl, zs)
        scinv5 = c5.sigmacritinv(zl, zs)
        scinv4 = c4.sigmacritinv(zl, zs)
        scinv3 = c3.sigmacritinv(zl, zs)
        scinv2 = c2.sigmacritinv(zl, zs)

        curve5 = Curve(zs, 100 * (scinv - scinv5) / scinv, color=colors[i])
        curve5.label = 'zlens: %0.2f' % zl
        allc5.append(curve5)
        p5.add(curve5)

        curve4 = Curve(zs, 100 * (scinv - scinv4) / scinv, color=colors[i])
        p4.add(curve4)

        curve3 = Curve(zs, 100 * (scinv - scinv3) / scinv, color=colors[i])
        p3.add(curve3)

        curve2 = Curve(zs, 100 * (scinv - scinv2) / scinv, color=colors[i])
        p2.add(curve2)

        i += 1

    key = PlotKey(0.15, 0.5, allc5)
    p5.add(key)

    tab[0, 0] = p5
    tab[0, 1] = p4
    tab[1, 0] = p3
    tab[1, 1] = p2

    tab.show()

    if epsfile is not None:
        tab.write_eps(epsfile)