plotnine

Python
Author

Nobukuni Hyakutake

Published

2025-04-27

1 ヒストグラム(python plotnine)

from plotnine import *
from palmerpenguins import load_penguins
import math

penguins = load_penguins()
penguins
       species     island  bill_length_mm  ...  body_mass_g     sex  year
0       Adelie  Torgersen            39.1  ...       3750.0    male  2007
1       Adelie  Torgersen            39.5  ...       3800.0  female  2007
2       Adelie  Torgersen            40.3  ...       3250.0  female  2007
3       Adelie  Torgersen             NaN  ...          NaN     NaN  2007
4       Adelie  Torgersen            36.7  ...       3450.0  female  2007
..         ...        ...             ...  ...          ...     ...   ...
339  Chinstrap      Dream            55.8  ...       4000.0    male  2009
340  Chinstrap      Dream            43.5  ...       3400.0  female  2009
341  Chinstrap      Dream            49.6  ...       3775.0    male  2009
342  Chinstrap      Dream            50.8  ...       4100.0    male  2009
343  Chinstrap      Dream            50.2  ...       3775.0  female  2009

[344 rows x 8 columns]
penguins_adelie=penguins.dropna(subset="bill_length_mm").loc[penguins["species"]=="Adelie"]
penguins_adelie
    species     island  bill_length_mm  ...  body_mass_g     sex  year
0    Adelie  Torgersen            39.1  ...       3750.0    male  2007
1    Adelie  Torgersen            39.5  ...       3800.0  female  2007
2    Adelie  Torgersen            40.3  ...       3250.0  female  2007
4    Adelie  Torgersen            36.7  ...       3450.0  female  2007
5    Adelie  Torgersen            39.3  ...       3650.0    male  2007
..      ...        ...             ...  ...          ...     ...   ...
147  Adelie      Dream            36.6  ...       3475.0  female  2009
148  Adelie      Dream            36.0  ...       3450.0  female  2009
149  Adelie      Dream            37.8  ...       3750.0    male  2009
150  Adelie      Dream            36.0  ...       3700.0  female  2009
151  Adelie      Dream            41.5  ...       4000.0    male  2009

[151 rows x 8 columns]
g=(
  ggplot(penguins_adelie,aes(x="bill_length_mm"))
  +geom_histogram(binwidth=2.5)
)
g.save("histogram.png",width=100,height=100*2/(1+math.sqrt(5)),units="mm")

shiny for pythonにするときはこちら

https://github.com/Nobukuni-Hyakutake/statistics/blob/4c0aae8a08947b15ebcf071ef4036014a212248b/basic-app-plot2/app.py

2 ヒストグラム(R ggplot)

library(tidyverse)
library(palmerpenguins)

penguins_adelie<-penguins |> 
  filter(species=="Adelie",!is.na(bill_length_mm))
penguins_adelie
# A tibble: 151 × 8
   species island    bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
   <fct>   <fct>              <dbl>         <dbl>             <int>       <int>
 1 Adelie  Torgersen           39.1          18.7               181        3750
 2 Adelie  Torgersen           39.5          17.4               186        3800
 3 Adelie  Torgersen           40.3          18                 195        3250
 4 Adelie  Torgersen           36.7          19.3               193        3450
 5 Adelie  Torgersen           39.3          20.6               190        3650
 6 Adelie  Torgersen           38.9          17.8               181        3625
 7 Adelie  Torgersen           39.2          19.6               195        4675
 8 Adelie  Torgersen           34.1          18.1               193        3475
 9 Adelie  Torgersen           42            20.2               190        4250
10 Adelie  Torgersen           37.8          17.1               186        3300
# ℹ 141 more rows
# ℹ 2 more variables: sex <fct>, year <int>
ggplot(penguins_adelie,aes(bill_length_mm))+
  geom_histogram(binwidth = 2.5)

3 Python version

import platform
"Python version "+platform.python_version()
'Python version 3.12.3'