Метод FadeOut не работает с объектом effectifs_text, я безуспешно пытался повозиться с масштабом.
Есть идеи?
Спасибо
from manim import *
import numpy as np
class NormalDistributionNumbers(Scene):
def construct(self):
# Étape 1: Générer une liste de 100 nombres suivant une loi normale N(175, 20), arrondis à l'unité
random_numbers = np.random.normal(175, 15, 100).round().astype(int)
# Étape 2: Afficher ces nombres
numbers_text = VGroup(*[Text(f"{num}") for num in random_numbers])
numbers_text.arrange_in_grid(rows=10, cols=10, buff=0.5)
self.play(Write(numbers_text.scale(0.5)))
self.wait(2)
# Étape 3: Trier les nombres dans l'ordre croissant
sorted_numbers = sorted(random_numbers)
sorted_numbers_text = VGroup(
*[Text(f"{num}") for num in sorted_numbers])
sorted_numbers_text.arrange_in_grid(rows=10, cols=10, buff=0.5)
self.play(Transform(numbers_text.scale(0.5),
sorted_numbers_text.scale(0.5)))
self.wait(2)
# Étape 4: Colorier les nombres inférieurs à 175 en rouge et ceux supérieurs ou égaux à 175 en bleu
# Étape 5: Partitionner la série en 8 classes de même amplitude entière et labelliser les valeurs avec 8 couleurs
min_val = min(sorted_numbers)
max_val = max(sorted_numbers)
amplitude = max_val - min_val
# Assure que class_width est un entier
class_width = (amplitude + 7) // 8
colors = [PURE_RED, ORANGE, YELLOW,
PURE_GREEN, PURE_BLUE, PURPLE, PINK, TEAL]
for num_text, num in zip(numbers_text, sorted_numbers):
# Assure que class_index est dans les limites
class_index = min((num - min_val) // class_width, 7)
num_text.set_color(colors[class_index])
self.wait(2)
# Étape 6: Fusionner les nombres de chaque classe et les remplacer par leur effectif
class_counts = [0] * 8
for num in sorted_numbers:
# Assure que class_index est dans les limites
class_index = min((num - min_val) // class_width, 7)
class_counts[class_index] += 1
effectifs_text = VGroup(
*[Text(f"{count}").set_color(colors) for i, count in enumerate(class_counts)])
effectifs_text.arrange(RIGHT, buff=1)
self.play(Transform(numbers_text.scale(
0.5), effectifs_text.scale(0.5)))
self.wait(2)
self.play(FadeOut(effectifs_text.scale(0.0005)))
print(type(effectifs_text))
# Étape 7: Construire un tableau d'effectifs pour chacune des classes de même amplitude
table_data = [["Taille (cm)", "Effectif"]]
for i, count in enumerate(class_counts):
class_label = f"[{min_val + i *
class_width}, {min_val + (i + 1) * class_width} ["
table_data.append([class_label, str(count)])
table = Table(
table_data,
include_outer_lines=True
)
# Colorier les cellules du tableau
for i, row in enumerate(table_data[1:], start=1):
table.add_to_back(table.get_cell(
(i, 0), color=colors[(i-1) % len(colors)]))
table.add_to_back(table.get_cell(
(i, 1), color=colors[(i-1) % len(colors)]))
self.play(FadeIn(table.scale(0.5)))
self.wait(2)
self.play(table.animate.shift(3*LEFT))
# Pour exécuter la scène
if __name__ == "__main__":
from manim import config
config.media_width = "75%"
scene = NormalDistributionNumbers()
scene.render()
Подробнее здесь: https://stackoverflow.com/questions/792 ... t-in-manim
Не удается исчезнуть текст в Manim ⇐ Python
Программы на Python
1734333112
Anonymous
Метод FadeOut не работает с объектом effectifs_text, я безуспешно пытался повозиться с масштабом.
Есть идеи?
Спасибо
from manim import *
import numpy as np
class NormalDistributionNumbers(Scene):
def construct(self):
# Étape 1: Générer une liste de 100 nombres suivant une loi normale N(175, 20), arrondis à l'unité
random_numbers = np.random.normal(175, 15, 100).round().astype(int)
# Étape 2: Afficher ces nombres
numbers_text = VGroup(*[Text(f"{num}") for num in random_numbers])
numbers_text.arrange_in_grid(rows=10, cols=10, buff=0.5)
self.play(Write(numbers_text.scale(0.5)))
self.wait(2)
# Étape 3: Trier les nombres dans l'ordre croissant
sorted_numbers = sorted(random_numbers)
sorted_numbers_text = VGroup(
*[Text(f"{num}") for num in sorted_numbers])
sorted_numbers_text.arrange_in_grid(rows=10, cols=10, buff=0.5)
self.play(Transform(numbers_text.scale(0.5),
sorted_numbers_text.scale(0.5)))
self.wait(2)
# Étape 4: Colorier les nombres inférieurs à 175 en rouge et ceux supérieurs ou égaux à 175 en bleu
# Étape 5: Partitionner la série en 8 classes de même amplitude entière et labelliser les valeurs avec 8 couleurs
min_val = min(sorted_numbers)
max_val = max(sorted_numbers)
amplitude = max_val - min_val
# Assure que class_width est un entier
class_width = (amplitude + 7) // 8
colors = [PURE_RED, ORANGE, YELLOW,
PURE_GREEN, PURE_BLUE, PURPLE, PINK, TEAL]
for num_text, num in zip(numbers_text, sorted_numbers):
# Assure que class_index est dans les limites
class_index = min((num - min_val) // class_width, 7)
num_text.set_color(colors[class_index])
self.wait(2)
# Étape 6: Fusionner les nombres de chaque classe et les remplacer par leur effectif
class_counts = [0] * 8
for num in sorted_numbers:
# Assure que class_index est dans les limites
class_index = min((num - min_val) // class_width, 7)
class_counts[class_index] += 1
effectifs_text = VGroup(
*[Text(f"{count}").set_color(colors[i]) for i, count in enumerate(class_counts)])
effectifs_text.arrange(RIGHT, buff=1)
self.play(Transform(numbers_text.scale(
0.5), effectifs_text.scale(0.5)))
self.wait(2)
self.play(FadeOut(effectifs_text.scale(0.0005)))
print(type(effectifs_text))
# Étape 7: Construire un tableau d'effectifs pour chacune des classes de même amplitude
table_data = [["Taille (cm)", "Effectif"]]
for i, count in enumerate(class_counts):
class_label = f"[{min_val + i *
class_width}, {min_val + (i + 1) * class_width} ["
table_data.append([class_label, str(count)])
table = Table(
table_data,
include_outer_lines=True
)
# Colorier les cellules du tableau
for i, row in enumerate(table_data[1:], start=1):
table.add_to_back(table.get_cell(
(i, 0), color=colors[(i-1) % len(colors)]))
table.add_to_back(table.get_cell(
(i, 1), color=colors[(i-1) % len(colors)]))
self.play(FadeIn(table.scale(0.5)))
self.wait(2)
self.play(table.animate.shift(3*LEFT))
# Pour exécuter la scène
if __name__ == "__main__":
from manim import config
config.media_width = "75%"
scene = NormalDistributionNumbers()
scene.render()
Подробнее здесь: [url]https://stackoverflow.com/questions/79282214/fails-to-fadeout-a-text-in-manim[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия