Өгөгдөл дүрслэх (matplotlib)
Тоо дүүрэн хүснэгтийг харахад хэв маяг илрүүлэхэд хэцүү. Харин зөв график нэг секундэд бүх зургийг харуулдаг. matplotlib бол Python-ийн хамгийн түгээмэл дүрслэлийн library бөгөөд шугамын график, баарны диаграмм, цэгэн график, дугуй диаграмм зэрэг бүх үндсэн графикийг дэмждэг.
Эхний график
pip install matplotlib
import matplotlib.pyplot as plt
# Хамгийн энгийн шугамын график
өдрүүд = [1, 2, 3, 4, 5, 6, 7]
температур = [−5, −3, 0, 4, 2, −1, 3]
plt.figure(figsize=(8, 4))
plt.plot(өдрүүд, температур, color="royalblue", linewidth=2, marker="o")
plt.title("7 хоногийн температур (°C)")
plt.xlabel("Өдөр")
plt.ylabel("Температур (°C)")
plt.axhline(y=0, color="red", linestyle="--", alpha=0.5) # тэгийн шугам
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig("температур.png", dpi=150)
plt.show()
plt.savefig() нь графикийг файлд хадгалдаг — тайлан, танилцуулгад оруулахад тохиромжтой.
Баарны диаграмм ба дугуй диаграмм
Ангиллын өгөгдлийг харьцуулахад баарны диаграмм хамгийн тод харуулдаг:
import matplotlib.pyplot as plt
хотууд = ["Улаанбаатар", "Дархан", "Эрдэнэт", "Чойбалсан", "Мөрөн"]
хүн_ам = [1.6, 0.1, 0.09, 0.04, 0.04] # сая хүн
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))
# Баарны диаграмм
ax1.bar(хотууд, хүн_ам, color=["#4ade80", "#60a5fa", "#fbbf24", "#a78bfa", "#f87171"])
ax1.set_title("Монголын томоохон хотуудын хүн ам")
ax1.set_ylabel("Хүн ам (сая)")
ax1.tick_params(axis="x", rotation=20)
# Дугуй диаграмм
ax2.pie(хүн_ам, labels=хотууд, autopct="%1.0f%%", startangle=90)
ax2.set_title("Хүн амын харьцаа")
plt.tight_layout()
plt.savefig("хотууд.png", dpi=150)
plt.show()
Pandas-тай хамтарч хэрэглэх
Pandas DataFrame-г шууд matplotlib-д дамжуулж болно — энэ нь хамгийн түгээмэл хэрэглээний хэлбэр:
import pandas as pd
import matplotlib.pyplot as plt
# Сарын борлуулалтын өгөгдөл
өгөгдөл = {
"сар": ["1-р", "2-р", "3-р", "4-р", "5-р", "6-р"],
"борлуулалт": [4200, 3800, 5100, 6300, 5800, 7200],
"зардал": [3100, 2900, 3400, 4100, 3900, 4600],
}
df = pd.DataFrame(өгөгдөл)
fig, ax = plt.subplots(figsize=(9, 5))
ax.plot(df["сар"], df["борлуулалт"], marker="o", label="Борлуулалт", color="#4ade80", linewidth=2)
ax.plot(df["сар"], df["зардал"], marker="s", label="Зардал", color="#f87171", linewidth=2)
ax.fill_between(df["сар"],
df["борлуулалт"],
df["зардал"],
alpha=0.15, color="#4ade80", label="Ашиг")
ax.set_title("Сарын борлуулалт ба зардал (₮ мянга)")
ax.set_ylabel("Дүн (₮ мянга)")
ax.legend()
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig("борлуулалт.png", dpi=150)
plt.show()
Гистограмм ба цэгэн график
Өгөгдлийн тархалтыг судлахад гистограмм, хоёр хувьсагчийн хамаарлыг харахад цэгэн график (scatter plot) хэрэглэнэ:
import matplotlib.pyplot as plt
import random
random.seed(42)
оноонууд = [random.gauss(75, 12) for _ in range(200)] # 200 оюутны оноо
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(11, 4))
# Гистограмм — тархалт харах
ax1.hist(оноонууд, bins=20, color="#a78bfa", edgecolor="white", alpha=0.85)
ax1.axvline(sum(оноонууд)/len(оноонууд), color="red", linestyle="--", label="Дундаж")
ax1.set_title("Оноогоор тархалт")
ax1.set_xlabel("Оноо")
ax1.set_ylabel("Оюутны тоо")
ax1.legend()
# Цэгэн график — хамаарал харах
суралцсан_цаг = [o / 10 + random.gauss(0, 1) for o in оноонууд]
ax2.scatter(суралцсан_цаг, оноонууд, alpha=0.4, color="#fbbf24", s=20)
ax2.set_title("Суралцсан цаг vs Оноо")
ax2.set_xlabel("Суралцсан цаг")
ax2.set_ylabel("Оноо")
plt.tight_layout()
plt.savefig("тархалт.png", dpi=150)
plt.show()
matplotlib-ийн subplots() функц олон графикийг нэг зурагт байрлуулах боломж олгодог — тайлан бэлдэхэд маш хэрэгтэй. Графикаа үргэлж tight_layout() дуудсаны дараа хадгалахаа мартуузай — үгүй бол гарчиг, тэнхлэгийн шошго огтлолцож харагдана.
Дараагийн хичээлд:
Python-ийн os, shutil, pathlib зэрэг стандарт модулиудыг ашиглан файл, хавтастай ажиллах автоматжуулалтыг сурна — нэрийг нь өөрчлөх, хуулах, шүүн зохион байгуулах бүгдийг кодоор хийнэ.