library(ggplot2)

data <- rexp(400, rate = 0.5)
head(data)
## [1] 0.9399771 6.2482891 2.4853414 2.3271339 0.2000472 3.1297683
mean_data = mean(data)
var_data = var(data)
print(mean_data)
## [1] 1.935655
print(var_data)
## [1] 3.621126
df <- data.frame(Value = data)

ggplot(df, aes(x = Value)) +
  geom_histogram(aes(y = after_stat(density)), bins = 30, fill = "blue", alpha = 0.6) +
  geom_density(color = "black", linewidth = 1.1) +
  labs(title = "Biểu đồ phân phối của mẫu dữ liệu từ phân phối mũ",
       x = "Giá trị",
       y = "Mật độ") +
  theme_minimal()

##install.packages("reticulate")
library(reticulate)
#use_python("C:/Users/ADMIN/AppData/Local/Programs/Python/Python312/python.exe", required = TRUE)
py_config()
## python:         C:/Users/ADMIN/Documents/.virtualenvs/r-reticulate/Scripts/python.exe
## libpython:      C:/Users/ADMIN/AppData/Local/Programs/Python/Python312/python312.dll
## pythonhome:     C:/Users/ADMIN/Documents/.virtualenvs/r-reticulate
## version:        3.12.5 (tags/v3.12.5:ff3bc82, Aug  6 2024, 20:45:27) [MSC v.1940 64 bit (AMD64)]
## Architecture:   64bit
## numpy:          C:/Users/ADMIN/Documents/.virtualenvs/r-reticulate/Lib/site-packages/numpy
## numpy_version:  2.2.3
## 
## NOTE: Python version was forced by VIRTUAL_ENV

#{r} #library(reticulate) #py_install("pandas") #py_install("numpy") #py_install("scikit-learn") #py_install("seaborn") #py_install("matplotlib") #

#{python} #import pandas as pd #print(pd.__version__) #

from sklearn.datasets import load_iris
import pandas as pd
import seaborn as sb
import matplotlib.pyplot as mpl

iris = load_iris()
df = pd.DataFrame(data = iris.data, columns = iris.feature_names)
df['Species'] = iris.target
print(df.head)
## <bound method NDFrame.head of      sepal length (cm)  sepal width (cm)  ...  petal width (cm)  Species
## 0                  5.1               3.5  ...               0.2        0
## 1                  4.9               3.0  ...               0.2        0
## 2                  4.7               3.2  ...               0.2        0
## 3                  4.6               3.1  ...               0.2        0
## 4                  5.0               3.6  ...               0.2        0
## ..                 ...               ...  ...               ...      ...
## 145                6.7               3.0  ...               2.3        2
## 146                6.3               2.5  ...               1.9        2
## 147                6.5               3.0  ...               2.0        2
## 148                6.2               3.4  ...               2.3        2
## 149                5.9               3.0  ...               1.8        2
## 
## [150 rows x 5 columns]>
crl = df['sepal length (cm)'].corr(df['petal length (cm)'])
print("Hệ số tương quan giữa chiều dài đài hoa và chiều rộng đài hoa:",crl)
## Hệ số tương quan giữa chiều dài đài hoa và chiều rộng đài hoa: 0.8717537758865831
df['species'] = [iris.target_names[i] for i in iris.target]

mpl.figure(figsize=(8, 6))
sb.scatterplot(
    data=df, 
    x="petal length (cm)", 
    y="petal width (cm)", 
    hue="species",
    palette="Set1",
    s=40
)

mpl.title("Biểu đồ Scatter giữa Chiều dài và Chiều rộng Cánh hoa", fontsize=14)
mpl.xlabel("Chiều dài cánh hoa (cm)", fontsize=12)
mpl.ylabel("Chiều rộng cánh hoa (cm)", fontsize=12)
mpl.legend(title="Loài hoa")
mpl.grid(True)
mpl.show()

library(ggplot2)
ggplot(iris, aes(x = Petal.Length, y = Petal.Width, color = Species)) +
  geom_point(size = 3) +
  labs(title = "Biểu đồ Scatter của Petal Length và Petal Width",
       x = "Chiều dài cánh hoa (Petal Length)",
       y = "Chiều rộng cánh hoa (Petal Width)") +
  theme_minimal()