library(reticulate) #abrindo o pacote reticulateWarning: pacote 'reticulate' foi compilado no R versão 4.4.3
Este relatório foi compilado em: 30/10/2025 19:55:35.
library(reticulate) #abrindo o pacote reticulateWarning: pacote 'reticulate' foi compilado no R versão 4.4.3
virtualenv_create("r-reticulate", python = "C:/Program Files/Python312/python.exe") #criando um ambiente virtual para usar pythonvirtualenv: r-reticulate
use_virtualenv("r-reticulate", required = TRUE) #manda usar o ambiente virtual criado
py_config() #mostra as informações de configurações do Python que o reticulate está usandopython: C:/Users/madud/Documents/.virtualenvs/r-reticulate/Scripts/python.exe
libpython: C:/Users/madud/AppData/Local/Programs/Python/Python313/python313.dll
pythonhome: C:/Users/madud/Documents/.virtualenvs/r-reticulate
version: 3.13.9 (tags/v3.13.9:8183fa5, Oct 14 2025, 14:09:13) [MSC v.1944 64 bit (AMD64)]
Architecture: 64bit
numpy: C:/Users/madud/Documents/.virtualenvs/r-reticulate/Lib/site-packages/numpy
numpy_version: 2.3.4
NOTE: Python version was forced by use_python() function
py_install("polars", envname = "r-reticulate")Using virtual environment "r-reticulate" ...
+ "C:/Users/madud/Documents/.virtualenvs/r-reticulate/Scripts/python.exe" -m pip install --upgrade --no-user polars
py_install("plotnine", envname = "r-reticulate")Using virtual environment "r-reticulate" ...
+ "C:/Users/madud/Documents/.virtualenvs/r-reticulate/Scripts/python.exe" -m pip install --upgrade --no-user plotnine
from plotnine.data import diamonds #importando direto do pacote plotnine
print(diamonds.head()) #vendo uma parte do dataset carat cut color clarity depth table price x y z
0 0.23 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43
1 0.21 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31
2 0.23 Good E VS1 56.9 65.0 327 4.05 4.07 2.31
3 0.29 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63
4 0.31 Good J SI2 63.3 58.0 335 4.34 4.35 2.75
from plotnine import (ggplot, aes, geom_point, labs, theme_minimal, theme,
element_text, element_line, scale_color_manual, scale_shape_manual)
#paleta de cores distintas e visuais
cores_distintas = ["#4361EE", "#F72585", "#4CC9F0", "#3A0CA3", "#7209B7"]
#diferentes formas para distinguir os cortes
formas = ['o', '^', 's', 'D', 'P']
grafico = (
ggplot(diamonds, aes(x='carat', y='price', color='cut', shape='cut')) +
geom_point(alpha=0.4, size=2.2) + # transparência alta por causa da sobreposição
labs(
title='Relação entre Peso (Carat) e Preço (US$) dos Diamantes',
subtitle='Cada cor e forma representa um tipo de corte diferente',
x='Peso (carat)',
y='Preço (US$)',
color='Corte',
shape='Corte',
caption='Fonte: plotnine.data.diamonds'
) +
scale_color_manual(values=cores_distintas) +
scale_shape_manual(values=formas) +
theme_minimal(base_family='Arial') +
theme(
panel_grid_major=element_line(color="#d3d3d3", size=0.5),
panel_grid_minor=element_line(color="#eeeeee", size=0.3),
plot_title=element_text(size=16, weight='bold', ha='center', color="#3a0ca3"),
plot_subtitle=element_text(size=11, ha='center', color="#555555"),
axis_title=element_text(size=12, weight='bold', color="#3a0ca3"),
axis_text=element_text(size=10, color="#333333"),
plot_caption=element_text(size=8, color="#777777", ha='right')
)
)
print(grafico)<ggplot: (640 x 480)>
grafico.save("grafico_diamantes.png", dpi=300)C:\Users\madud\DOCUME~1\VIRTUA~1\R-RETI~1\Lib\site-packages\plotnine\ggplot.py:623: PlotnineWarning: Saving 6.4 x 4.8 in image.
C:\Users\madud\DOCUME~1\VIRTUA~1\R-RETI~1\Lib\site-packages\plotnine\ggplot.py:624: PlotnineWarning: Filename: grafico_diamantes.png
#visualizar o gráfico na IDE e no HTML
knitr::include_graphics("grafico_diamantes.png")De acordo com o gráfico, a relação entre peso (carat) e preço (price) dos diamantes é positiva: diamantes mais pesados tendem a custar mais caro. Para fazer com que o gráfico tivesse boa qualidade, foram utilizados pontos translúcidos para reduzir a sobreposição visual, cores distintas para diferentes categorias de corte (cut) de forma a destacar padrões dentro do conjunto de dados, além de títulos e rótulos claros. Para finalizar, para cada categoria de corte foi atribuída uma forma geométrica diferente, a fim de facilitar ainda mais a visualização.
from plotnine import ggplot, aes, geom_point, geom_smooth, labs, theme_minimal, theme, element_text, facet_wrap
#gráfico: relação entre carat e price por corte
grafico_facets = (
ggplot(diamonds, aes(x='carat', y='price')) +
geom_point(alpha=0.4, color="#7b2cbf", size=1.5) + # pontos translúcidos
geom_smooth(method='lm', color="black", se=True, alpha=0.15) + # linha preta
facet_wrap('~cut') + # separa por corte
labs(
title='Relação entre Peso (Carat) e Preço por Corte de Diamante',
x='Peso (carat)',
y='Preço (US$)',
caption='Fonte: plotnine.data.diamonds'
) +
theme_minimal(base_family='Arial') +
theme(
panel_grid_major=element_line(color="#d3d3d3", size=0.5),
panel_grid_minor=element_line(color="#eeeeee", size=0.3),
plot_title=element_text(size=16, weight='bold', ha='center', color="#3a0ca3"),
axis_title=element_text(size=12, weight='bold', color="#3a0ca3"),
axis_text=element_text(size=10, color="#333333"),
plot_caption=element_text(size=8, color="#777777", ha='right')
)
)
print(grafico_facets)<ggplot: (640 x 480)>
grafico_facets.save("grafico_facets.png", dpi=300)C:\Users\madud\DOCUME~1\VIRTUA~1\R-RETI~1\Lib\site-packages\plotnine\ggplot.py:623: PlotnineWarning: Saving 6.4 x 4.8 in image.
C:\Users\madud\DOCUME~1\VIRTUA~1\R-RETI~1\Lib\site-packages\plotnine\ggplot.py:624: PlotnineWarning: Filename: grafico_facets.png
#visualizar o gráfico na IDE e no HTML
knitr::include_graphics("grafico_facets.png")A análise da relação entre peso (carat) e preço dos diamantes, segmentada pelos diferentes tipos de corte, revela que a tendência geral de aumento do preço com o peso se mantém em todos os casos. No entanto, observa-se que a intensidade dessa relação varia conforme o corte: diamantes com cortes de qualidade superior, como Ideal e Premium, tendem a apresentar preços mais elevados para um mesmo peso em comparação aos cortes Fair e Good. Isso sugere que, embora o peso seja um forte determinante do preço, o tipo de corte também exerce uma influência significativa.
from plotnine import (
ggplot, aes, geom_point, geom_smooth, labs,
theme_minimal, theme, element_text, facet_grid)
#gráfico: relação entre preço e peso considerando cut, color e clarity
grafico_complex = (
ggplot(diamonds, aes(x='carat', y='price', color='color')) + # cor por 'color'
geom_point(alpha=0.4, size=1.5) + # pontos translúcidos
geom_smooth(method='lm', color="black", se=False, alpha=0.2) + # linha preta
facet_grid('cut ~ clarity') + # linhas por corte, colunas por clareza
labs(
title='Relação entre Peso (Carat) e Preço do Diamante',
subtitle='Separado por corte e clareza; cor indica a cor do diamante',
x='Peso (carat)',
y='Preço (US$)',
color='Cor',
caption='Fonte: plotnine.data.diamonds'
) +
theme_minimal(base_family='Arial') +
theme(
panel_grid_major=element_line(color="#d3d3d3", size=0.5),
panel_grid_minor=element_line(color="#eeeeee", size=0.3),
plot_title=element_text(size=16, weight='bold', ha='center', color="#3a0ca3"),
plot_subtitle=element_text(size=11, ha='center', color="#555555"),
axis_title=element_text(size=12, weight='bold', color="#3a0ca3"),
axis_text=element_text(size=8, color="#333333"),
plot_caption=element_text(size=8, color="#777777", ha='right'),
legend_position='bottom'
)
)
print(grafico_complex)<ggplot: (640 x 480)>
grafico_complex.save("grafico_complex.png", dpi=300)C:\Users\madud\DOCUME~1\VIRTUA~1\R-RETI~1\Lib\site-packages\plotnine\ggplot.py:623: PlotnineWarning: Saving 6.4 x 4.8 in image.
C:\Users\madud\DOCUME~1\VIRTUA~1\R-RETI~1\Lib\site-packages\plotnine\ggplot.py:624: PlotnineWarning: Filename: grafico_complex.png
#visualizar o gráfico na IDE e no HTML
knitr::include_graphics("grafico_complex.png")O gráfico mostra que, embora exista uma relação positiva consistente entre o peso (carat) e o preço dos diamantes, essa relação varia de forma perceptível entre as diferentes combinações de corte, cor e clareza. Diamantes com cortes de maior qualidade e maior clareza tendem a apresentar preços mais altos, mesmo para pesos semelhantes, indicando que esses fatores valorizam significativamente a pedra. As principais dificuldades encontradas foram a sobreposição dos pontos e a densidade elevada de dados, que dificultam a visualização clara das tendências dentro de cada combinação. Ainda assim, o gráfico permite observar que o peso continua sendo o principal determinante do preço, mas seu efeito é amplificado conforme a qualidade geral do diamante aumenta.