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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
"""Categories and repeats"""
# manually create a plot by adding Rectangles to a Figure object
from vedo import np, settings, Rectangle, Text3D, Line, DashedLine
from vedo.pyplot import Figure
settings.default_font = "Theemim"
#################################################################### First plot
groupA = np.random.randn(3)*10+50
groupB = np.random.randn(3)*10+60
groupC = np.random.randn(3)*10+70
fig = Figure(
[-5,55], [-10,100], # x and y ranges
xtitle='', ytitle='', # this disables x and y axes
)
#################
x0 = 0
for i in range(3):
x1 = x0 + 4
val= groupA[i]
fig += Rectangle([x0,0], [x1, val], c=f'red{3+i*2}')
x0 = x1
fig += Text3D("Group A", justify='center', c='k').pos(6,-7).scale(4)
fig += Line([-1,0], [13, 0], lw=2)
#################
x0 = 20
for i in range(3):
x1 = x0 + 4
val= groupB[i]
fig += Rectangle([x0,0], [x1, val], c=f'purple{3+i*2}')
x0 = x1
fig += Text3D("Group B", justify='center', c='k').pos(26,-7).scale(4)
fig += Line([19,0], [33, 0], lw=2)
#################
x0 = 40
for i in range(3):
x1 = x0 + 4
val= groupC[i]
fig += Rectangle([x0,0], [x1, val], c=f'orange{3+i*2}')
x0 = x1
fig += Text3D("Group C", justify='center', c='k').pos(46,-7).scale(4)
fig += Line([39,0], [53, 0], lw=2)
#################
fig += DashedLine([-2,50], [55,50], c='k3', lw=1)
fig += Text3D("50%").pos(-7,49).scale(3).c('k')
fig.show(size=(1000,700), zoom='tight', title=__doc__).clear()
#################################################################### Second plot
fig = Figure(
[0, 100], [-20, 80],
aspect=3/4, # can change the aspect ratio
xtitle='', ytitle='', # this disables x and y axes
)
for i in range(5):
val = np.random.randn()*10+50
y0, y1 = 2*i, 2*i+1
fig += Rectangle([0,y0], [100,y1], radius=0.5, c='k6')
fig += Rectangle([0,y0], [val,y1], radius=0.5, c='r4').z(1)
fig += Text3D("Group A", justify='center', c='k').pos(50,-5).scale(2.5)
for i in range(5):
val = np.random.randn()*10+60
y0, y1 = 2*i + 20, 2*i+1 + 20
fig += Rectangle([0,y0], [100,y1], radius=0.5, c='k6')
fig += Rectangle([0,y0], [val,y1], radius=0.5, c='p5').z(1)
fig += Text3D("Group B", justify='center', c='k').pos(50,15).scale(2.5)
for i in range(5):
val = np.random.randn()*10+70
y0, y1 = 2*i + 40, 2*i+1 + 40
fig += Rectangle([0,y0], [100,y1], radius=0.5, c='k6')
fig += Rectangle([0,y0], [val,y1], radius=0.5, c='o5').z(1)
fig += Text3D("Group C", justify='center', c='k').pos(50,35).scale(2.5)
fig.show(size=(1000,700), zoom='tight').close()
|