import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from plotnine import aes, element_text, geom_line, geom_point, ggplot, labs, scale_color_continuous, themeUkázka použití knihoven pro tvorbu grafů
Ukázky tvorby grafů pomocí knihoven matplotlib a plotnine.
# Vytvoření dvou proměnných s 15 náhodnými hodnotami
x = np.random.rand(15)
y = np.random.rand(15)
# Vytvoření proměnné z s 15 náhodnými hodnotami z rozsahu 100 až 500
z = np.random.randint(100, 501, size=15)
# Spojení do pandas dataframe
df = pd.DataFrame({"x": x, "y": y, "z": z})# matplotlib z dat numpy array
fig, ax = plt.subplots()
ax.scatter(x, y)
ax.set_title("Bodový graf")
ax.set_xlabel("x")
ax.set_ylabel("y")
plt.show()
# matplotlib z pandas dataframe
fig, ax = plt.subplots()
scatter = ax.scatter(df["x"], df["y"], c=df["z"], cmap="viridis")
fig.colorbar(scatter, ax=ax, label="Hodnota z")
ax.set_title("Bodový graf")
ax.set_xlabel("x")
ax.set_ylabel("y")
plt.show()
# plotnine na základě pandas dataframe
plot = (
ggplot(df, aes(x="x", y="y", color="z"))
+ geom_point(size=5)
+ scale_color_continuous("viridis")
+ labs(title="Scatter Plot", x="x", y="y")
)
plot
# plotnine liniový a bodový graf
plot = (
ggplot(df, aes(x="x", y="y"))
+ geom_line(color="blue", size=1, linetype="solid", alpha=0.8)
+ geom_point(color="blue", size=3)
+ labs(
title="Liniový graf",
x="x",
y="y",
)
+ theme(
plot_title=element_text(size=16, weight="bold"),
axis_title_x=element_text(size=14),
axis_title_y=element_text(size=14),
axis_text=element_text(size=12),
panel_grid_major=element_text(alpha=0.6),
panel_grid_minor=element_text(alpha=0.3),
)
)
plot