Download Documentation API Reference Samples Asset Store Donate
Column Graph
https://github.com/pokepetter/ursina/blob/master/samples/column_graph.py
from ursina import *
import random
app = Ursina()
color.text_color = color.dark_text
names = ['Amy', 'Ruby', 'Tara', 'Ann', 'Samantha', 'Gary', 'Lee', 'Frank', 'Joe', 'Thomas']
random.seed(0)
data = dict()
for name in names:
data[name] = random.randint(0, 100)
sliders = list()
for i, (name, value) in enumerate(data.items()):
column = Button(
parent = scene,
name = name,
model = 'cube',
x = i - (len(names)/2),
scale = (.5, value/50, .5),
color = color.hsv(30*i, 1, .7),
origin_y = -.5,
text = name,
tooltip = Tooltip('00', color=color.light_text) # to ensure uniform with
)
column.tooltip.text = str(value)
column.text_entity.scale *= .4
column.text_entity.world_y = column.world_y - .2
column.text_entity.z = -.5
column.text_entity.world_parent = scene
column.text_entity.color = column.color.tint(-.5)
slider = ThinSlider(text=name, min=0, max=100, default=value, x=-.65, y=(-i*.04*.75) - .15, step=1, dynamic=True)
slider.scale *= .75
sliders.append(slider)
def on_slider_changed(slider=slider, column=column):
column.scale_y = slider.value/50
column.tooltip.text = str(slider.value)
slider.on_value_changed = on_slider_changed
randomize_button = Button(position=(-.66,-.45), origin=(-.5,.5), color=color.dark_gray, text='<white>Randomize!', scale=(.25, .05))
randomize_button.scale *= .75
def randomize():
for s in sliders:
s.value = random.randint(0,100)
s.on_value_changed()
randomize_button.on_click = randomize
window.color=color.light_gray.tint(.1)
window.fps_counter.enabled = False
window.exit_button.visible = False
camera.orthographic = True
camera.fov = 8
EditorCamera()
app.run()