import matplotlib.pyplot as plt import numpy as np  # ===================================================== # CONFIGURAÇÃO DE ESTILO "MANUAL DE MACROECONOMIA" # ===================================================== plt.rcParams['font.family'] = 'serif' plt.rcParams['font.size'] = 12 plt.rcParams['axes.linewidth'] = 1.5 plt.rcParams['lines.linewidth'] = 2 plt.rcParams['lines.markersize'] = 8  # ===================================================== # DADOS PARA O DIAGRAMA ESQUEMÁTICO # ===================================================== # Eixos Y = np.linspace(0, 100, 100) i = np.linspace(0, 10, 100)  # Curva LM (positiva) LM = 2 + 0.04 * Y  # Curva IS0 (inicial) IS0 = 8 - 0.08 * Y  # Curva IS1 (após expansão fiscal, deslocada para direita) IS1 = 8.5 - 0.08 * Y  # Equilíbrio inicial E0 (Y0, i0) Y0 = 50 i0 = 2 + 0.04 * Y0  # = 4.0  # Equilíbrio de curto prazo A (IS1 ∩ LM) Y_cp = (8.5 - 2) / (0.04 + 0.08)  # = 54.1667 i_cp = 2 + 0.04 * Y_cp            # = 4.1667  # BP vertical (imobilidade perfeita de capitais) # Posição inicial BP0 em Y0 # Posição final BP1 após valorização cambial (desloca para esquerda) Y_BP0 = Y0 Y_BP1 = Y0 - 5  # ===================================================== # CRIAÇÃO DA FIGURA # ===================================================== fig, ax = plt.subplots(figsize=(10, 7))  # Fundo branco e grid leve ax.set_facecolor('white') ax.grid(True, linestyle=':', linewidth=0.5, alpha=0.7, color='gray')  # ===================================================== # CURVAS # ===================================================== # LM ax.plot(Y, LM, 'r-', linewidth=2.5, label='LM')  # IS0 (inicial) ax.plot(Y, IS0, 'b-', linewidth=2.5, label='IS₀')  # IS1 (após política fiscal) ax.plot(Y, IS1, 'b--', linewidth=2.5, label="IS₁ (após expansão fiscal)")  # BP0 (inicial) - vertical ax.axvline(x=Y_BP0, ymin=0, ymax=1, color='purple', linestyle=':', linewidth=2.5, label='BP₀')  # BP1 (após valorização cambial) - vertical deslocada para esquerda ax.axvline(x=Y_BP1, ymin=0, ymax=1, color='purple', linestyle='-.', linewidth=2.5, label='BP₁ (após câmbio)')  # IS final = IS0 (o câmbio anula o efeito sobre Y) # Representamos como IS0 tracejada mais grossa ou igual ax.plot(Y, IS0, 'b-', linewidth=2, alpha=0.6, label='IS₂ = IS₀ (após ajuste cambial)')  # ===================================================== # PONTOS DE EQUILÍBRIO # ===================================================== # E0 (inicial) ax.plot(Y0, i0, 'ko', markersize=10, zorder=5) ax.text(Y0 - 1.5, i0 + 0.2, '$E_0$', fontsize=14, fontweight='bold', ha='right')  # Ponto A (curto prazo) ax.plot(Y_cp, i_cp, 'ks', markersize=10, markerfacecolor='gray', zorder=5) ax.text(Y_cp + 1.5, i_cp + 0.2, '$A$', fontsize=14, fontweight='bold', ha='left')  # E1 (novo equilíbrio) = E0 ax.plot(Y0, i0, 'k^', markersize=12, zorder=5) ax.text(Y0 - 1.5, i0 - 0.4, '$E_1$', fontsize=14, fontweight='bold', ha='right')  # ===================================================== # SETAS INDICANDO DESLOCAMENTOS # ===================================================== # Seta horizontal: deslocamento da IS (curto prazo) ax.annotate('', xy=(Y_cp, i_cp), xytext=(Y0, i0),             arrowprops=dict(arrowstyle='->', color='blue', lw=2, alpha=0.8)) ax.text((Y0 + Y_cp)/2, i0 + 0.3, 'Expansão fiscal\n(IS → direita)',          fontsize=10, ha='center', color='blue', bbox=dict(boxstyle="round,pad=0.3", facecolor='white', alpha=0.7))  # Seta vertical/curva: ajuste cambial ax.annotate('', xy=(Y0, i0), xytext=(Y_cp, i_cp),             arrowprops=dict(arrowstyle='->', color='green', lw=2, linestyle='dashed', alpha=0.8)) ax.text((Y0 + Y_cp)/2 + 2, (i0 + i_cp)/2 + 0.2, 'Ajuste cambial\n(IS volta →)',          fontsize=10, ha='center', color='green', bbox=dict(boxstyle="round,pad=0.3", facecolor='white', alpha=0.7))  # Seta indicando deslocamento da BP ax.annotate('', xy=(Y_BP1, i0), xytext=(Y_BP0, i0),             arrowprops=dict(arrowstyle='<->', color='purple', lw=1.5, alpha=0.7)) ax.text(Y_BP0 - 6, i0 + 0.6, 'Deslocamento da BP\n(valorização cambial)',          fontsize=9, ha='center', color='purple', bbox=dict(boxstyle="round,pad=0.2", facecolor='white', alpha=0.6))  # ===================================================== # RÓTULOS DOS EIXOS E LIMITES # ===================================================== ax.set_xlabel('Produto (Y)', fontsize=14, fontweight='bold') ax.set_ylabel('Taxa de juros (i)', fontsize=14, fontweight='bold') ax.set_xlim(30, 70) ax.set_ylim(2, 6)  # ===================================================== # LEGENDA # ===================================================== ax.legend(loc='upper right', frameon=True, fancybox=True, shadow=True, fontsize=10)  # ===================================================== # TÍTULO E SUBTÍTULO ESTILO MANUAL # ===================================================== fig.suptitle('Política Fiscal Expansionista', fontsize=16, fontweight='bold', y=0.98) ax.set_title('Câmbio Flexível + Perfeita Imobilidade de Capitais (BP vertical)',               fontsize=12, style='italic', pad=10)  # Caixa de texto com a conclusão ax.text(32, 2.3,          'Resultado: Política fiscal INEFICAZ para alterar Y no longo prazo.\n'         'Apenas composição do gasto se altera (crowding out das exportações líquidas).',          fontsize=9, bbox=dict(boxstyle="round,pad=0.5", facecolor='lightyellow', edgecolor='black', alpha=0.9))  # ===================================================== # AJUSTE FINAL E EXIBIÇÃO # ===================================================== plt.tight_layout() plt.show()  # Para salvar a imagem (descomente se quiser) # fig.savefig('IS_LM_BP_fiscal_flexivel_imobilidade_capitais.png', dpi=300, bbox_inches='tight')

Prompt

import matplotlib.pyplot as plt import numpy as np # ===================================================== # CONFIGURAÇÃO DE ESTILO "MANUAL DE MACROECONOMIA" # ===================================================== plt.rcParams['font.family'] = 'serif' plt.rcParams['font.size'] = 12 plt.rcParams['axes.linewidth'] = 1.5 plt.rcParams['lines.linewidth'] = 2 plt.rcParams['lines.markersize'] = 8 # ===================================================== # DADOS PARA O DIAGRAMA ESQUEMÁTICO # ===================================================== # Eixos Y = np.linspace(0, 100, 100) i = np.linspace(0, 10, 100) # Curva LM (positiva) LM = 2 + 0.04 * Y # Curva IS0 (inicial) IS0 = 8 - 0.08 * Y # Curva IS1 (após expansão fiscal, deslocada para direita) IS1 = 8.5 - 0.08 * Y # Equilíbrio inicial E0 (Y0, i0) Y0 = 50 i0 = 2 + 0.04 * Y0 # = 4.0 # Equilíbrio de curto prazo A (IS1 ∩ LM) Y_cp = (8.5 - 2) / (0.04 + 0.08) # = 54.1667 i_cp = 2 + 0.04 * Y_cp # = 4.1667 # BP vertical (imobilidade perfeita de capitais) # Posição inicial BP0 em Y0 # Posição final BP1 após valorização cambial (desloca para esquerda) Y_BP0 = Y0 Y_BP1 = Y0 - 5 # ===================================================== # CRIAÇÃO DA FIGURA # ===================================================== fig, ax = plt.subplots(figsize=(10, 7)) # Fundo branco e grid leve ax.set_facecolor('white') ax.grid(True, linestyle=':', linewidth=0.5, alpha=0.7, color='gray') # ===================================================== # CURVAS # ===================================================== # LM ax.plot(Y, LM, 'r-', linewidth=2.5, label='LM') # IS0 (inicial) ax.plot(Y, IS0, 'b-', linewidth=2.5, label='IS₀') # IS1 (após política fiscal) ax.plot(Y, IS1, 'b--', linewidth=2.5, label="IS₁ (após expansão fiscal)") # BP0 (inicial) - vertical ax.axvline(x=Y_BP0, ymin=0, ymax=1, color='purple', linestyle=':', linewidth=2.5, label='BP₀') # BP1 (após valorização cambial) - vertical deslocada para esquerda ax.axvline(x=Y_BP1, ymin=0, ymax=1, color='purple', linestyle='-.', linewidth=2.5, label='BP₁ (após câmbio)') # IS final = IS0 (o câmbio anula o efeito sobre Y) # Representamos como IS0 tracejada mais grossa ou igual ax.plot(Y, IS0, 'b-', linewidth=2, alpha=0.6, label='IS₂ = IS₀ (após ajuste cambial)') # ===================================================== # PONTOS DE EQUILÍBRIO # ===================================================== # E0 (inicial) ax.plot(Y0, i0, 'ko', markersize=10, zorder=5) ax.text(Y0 - 1.5, i0 + 0.2, '$E_0$', fontsize=14, fontweight='bold', ha='right') # Ponto A (curto prazo) ax.plot(Y_cp, i_cp, 'ks', markersize=10, markerfacecolor='gray', zorder=5) ax.text(Y_cp + 1.5, i_cp + 0.2, '$A$', fontsize=14, fontweight='bold', ha='left') # E1 (novo equilíbrio) = E0 ax.plot(Y0, i0, 'k^', markersize=12, zorder=5) ax.text(Y0 - 1.5, i0 - 0.4, '$E_1$', fontsize=14, fontweight='bold', ha='right') # ===================================================== # SETAS INDICANDO DESLOCAMENTOS # ===================================================== # Seta horizontal: deslocamento da IS (curto prazo) ax.annotate('', xy=(Y_cp, i_cp), xytext=(Y0, i0), arrowprops=dict(arrowstyle='->', color='blue', lw=2, alpha=0.8)) ax.text((Y0 + Y_cp)/2, i0 + 0.3, 'Expansão fiscal\n(IS → direita)', fontsize=10, ha='center', color='blue', bbox=dict(boxstyle="round,pad=0.3", facecolor='white', alpha=0.7)) # Seta vertical/curva: ajuste cambial ax.annotate('', xy=(Y0, i0), xytext=(Y_cp, i_cp), arrowprops=dict(arrowstyle='->', color='green', lw=2, linestyle='dashed', alpha=0.8)) ax.text((Y0 + Y_cp)/2 + 2, (i0 + i_cp)/2 + 0.2, 'Ajuste cambial\n(IS volta →)', fontsize=10, ha='center', color='green', bbox=dict(boxstyle="round,pad=0.3", facecolor='white', alpha=0.7)) # Seta indicando deslocamento da BP ax.annotate('', xy=(Y_BP1, i0), xytext=(Y_BP0, i0), arrowprops=dict(arrowstyle='<->', color='purple', lw=1.5, alpha=0.7)) ax.text(Y_BP0 - 6, i0 + 0.6, 'Deslocamento da BP\n(valorização cambial)', fontsize=9, ha='center', color='purple', bbox=dict(boxstyle="round,pad=0.2", facecolor='white', alpha=0.6)) # ===================================================== # RÓTULOS DOS EIXOS E LIMITES # ===================================================== ax.set_xlabel('Produto (Y)', fontsize=14, fontweight='bold') ax.set_ylabel('Taxa de juros (i)', fontsize=14, fontweight='bold') ax.set_xlim(30, 70) ax.set_ylim(2, 6) # ===================================================== # LEGENDA # ===================================================== ax.legend(loc='upper right', frameon=True, fancybox=True, shadow=True, fontsize=10) # ===================================================== # TÍTULO E SUBTÍTULO ESTILO MANUAL # ===================================================== fig.suptitle('Política Fiscal Expansionista', fontsize=16, fontweight='bold', y=0.98) ax.set_title('Câmbio Flexível + Perfeita Imobilidade de Capitais (BP vertical)', fontsize=12, style='italic', pad=10) # Caixa de texto com a conclusão ax.text(32, 2.3, 'Resultado: Política fiscal INEFICAZ para alterar Y no longo prazo.\n' 'Apenas composição do gasto se altera (crowding out das exportações líquidas).', fontsize=9, bbox=dict(boxstyle="round,pad=0.5", facecolor='lightyellow', edgecolor='black', alpha=0.9)) # ===================================================== # AJUSTE FINAL E EXIBIÇÃO # ===================================================== plt.tight_layout() plt.show() # Para salvar a imagem (descomente se quiser) # fig.savefig('IS_LM_BP_fiscal_flexivel_imobilidade_capitais.png', dpi=300, bbox_inches='tight')

Engine

BNX AI 1.0

Size

1:1

Created

19 April, 2026

Views

19

Downloads

0

HTML Code

Features

This is just one of the features of our unique system. Our model works very quickly and accurately. It uses advanced artificial intelligence and creates high-quality images.

Work on NVIDIA GB300 NVL72
Work on NVIDIA GB300 NVL72

ㅤBNX AI algorithms run on proprietary clusters built on NVIDIA GB300 NVL72 systems.

Any image size
Any image size

ㅤGeneration of images with any aspect ratio: 1:1, 2:3, 3:2, 4:5, 5:4, 4:3, 3:4, 16:9, 21:9, 9:16, 9:21

Simple and practical UI
Simple and practical UI

ㅤThere is nothing superfluous in our interface, only a prompt input field.

Fair price
Fair price

Our prices are on average 83% cheaper than those of large AI companies.

Unlimited downloads
Unlimited downloads

Even on the free plan, you can download generated images without restrictions.

BNX AI 1.0
BNX AI 1.0

Our own algorithm. Fast, modern. Almost perfect. Developed over 2 years.

F.A.Q.

Answers to frequently asked questions about working with the BNX AI 1.0 image generation system.

We are a young, technology-driven, growing startup. At the moment, we are not attracting funding from venture capital funds or business angels, so we would appreciate any support. You can sign up for the Enterprise plan, which will help us. 💙

  BNX AI - Free AI Image Generator | Product Hunt

When generating an image, you can open the options and enable stealth mode, then the images will not be added to the public database and no one will see them; they will be private.

We trained the BNX AI 1.0 algorithm for over a year, and it is equally adept at generating various types of images: illustrations, architecture, portraits, super-realistic images, 3D models, logos, and much more. We managed to achieve very good results when working with text, so it is easy to create both a logo and a poster.

You may use the images at your discretion. Professional and Enterprise plan users may use the images for any commercial purposes. They may also sell these images. We ask Standard plan users to include a link to bnx.me when publishing images, but this is not a mandatory requirement.

Using websites and apps involves storing and retrieving information from your device, including cookies and other identifiers, which can be shared with third parties, for various activities.

More