File: plotter.py

package info (click to toggle)
python-pulp 2.6.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 14,720 kB
  • sloc: python: 7,505; makefile: 16; sh: 16
file content (56 lines) | stat: -rw-r--r-- 1,375 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/env python
# -*- encoding: utf-8 -*-

from matplotlib import rc

rc("text", usetex=True)
rc("font", family="serif")


def plot_interval(a, c, x_left, x_right, i, fbound):
    lh = c * (1 - a[0])
    rh = c * (1 + a[1])
    x = arange(x_left, x_right + 1)
    y = 0 * x
    arrow_r = Arrow(c, 0, c * a[1], 0, 0.2)
    arrow_l = Arrow(c, 0, -c * a[0], 0, 0.2)
    plot(x, y)
    text(
        (x_left + lh) / 2.0,
        0.1,
        "freebound interval [%s, %s] is penalty-free" % (lh, rh),
    )
    text((x_left + lh) / 2.0, 0.2, "rhs=%s,    %s" % (c, fbound))
    cur_ax = gca()
    cur_ax.add_patch(arrow_l)
    cur_ax.add_patch(arrow_r)
    axis([x_left, x_right, -0.1, 0.3])
    yticks([])
    title("Elasticized constraint\_%s   $C(x)= %s $" % (i, c))


figure()
subplots_adjust(hspace=0.5)

fbound = "proportionFreeBound"
i = 1
subplot(2, 1, i)
a = [0.01, 0.01]
c = 200
x_left = 0.97 * c
x_right = 1.03 * c
fb_string = "%s%s = %s" % (fbound, "", a[0])
plot_interval(a, c, x_left, x_right, i, fb_string)

i += 1
subplot(2, 1, i)
a = [0.02, 0.05]
c = 500
x_left = 0.9 * c  # scale of window
x_right = 1.2 * c  # scale of window
fb_string = "%s%s = [%s,%s]" % (fbound, "List", a[0], a[1])
plot_interval(a, c, x_left, x_right, i, fb_string)
savefig("freebound.jpg")
savefig("freebound.pdf")

# vim: fenc=utf-8: ft=python:sw=4:et:nu:fdm=indent:fdn=1:syn=python