Sada dat v tomto příkladu je třírozměrná. Každá linie na grafu je vytvořena z hodnot x, y a barvy c. Proměnná x obsahuje hodnoty na ose x, y obsahuje hodnoty na ose y, a c určuje barvu, která je použita pro vykreslení linie. Takže ve smyslu grafické reprezentace jsou data třírozměrná.
# Importování knihovny NumPy pro práci s numerickými daty
import numpy as np
# Importování modulu pyplot z knihovny Matplotlib pro vizualizaci dat
import matplotlib.pyplot as plt
# Importování modulu matplotlib pro manipulaci s colormapami
import matplotlib as mpl
# Počet linií
n_lines = 100
# Vytvoření pole hodnot x od 0 do 10 s 100 body
# hodnoty jsou rovnoměrně rozložené mezi hodnotami
start
a stop
. # Parametr
num
určuje počet bodů vytvořených v rozsahu.x = np.linspace(0, 10, 100)
# Výpočet sinusových hodnot pro pole x
y = np.sin(x[:, None] + np.pi * np.linspace(0, 1, n_lines))
# Vytvoření pole hodnot s rostoucí posloupností od 1 do n_lines
c = np.arange(1, n_lines + 1)
# Vytvoření nové colormapy na základě původní 'jet' colormapy,
# která je vzorkována na základě počtu linií n_lines.
# To znamená, že nízký počet n_lines jako 20 jednoduše přeskočí
# zbytek barev v colormapě, takže na grafu se vytvoří mezery.
# Hodnota 100, ale vytvoří plynulý přechod mezi barvami, který
# připomíná barvy duhy.
cmap = mpl.colormaps['jet'].resampled(n_lines)
# Vytvoření objektu figury a osy s nastaveným DPI na 100
fig, ax = plt.subplots(dpi=100)
# Vykreslení scatter plotu s body na souřadnicích c, c a
# barvami z colormapy cmap
dummie_cax = ax.scatter(c, c, c=c, cmap=cmap)
# Vymazání obsahu osy (Axes) před vykreslením nových dat
ax.cla()
# Vykreslení čar pro každý sloupec v matici y.T
# s barvou určenou podle colormapy cmap
# .T je transponovaná matice - řádky matice se stávají sloupci a
# naopak.
# Po provedení transpozice je matice y je iterována po řádcích a
# každé yi reprezentuje sloupec původní matice.
for i, yi in enumerate(y.T):
ax.plot(x, yi, c=cmap(i))
# Přidání barevné stupnice ke grafu s colormapou cmap a značkami na základě hodnot v poli c, která odpovídají barevným hodnotám
fig.colorbar(dummie_cax, ticks=c, ax=ax)
# Zobrazení grafu
plt.show()
Žádné komentáře:
Okomentovat