Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การแสดงความแตกต่างที่มีนัยสำคัญทางสถิติในกราฟแท่งด้วย Matplotlib

การแสดงความแตกต่างที่มีนัยสำคัญทางสถิติ (statistically significant difference) ในกราฟแท่งช่วยให้นำเสนอข้อมูลได้ชัดเจนและน่าเชื่อถือมากขึ้น ใน Matplotlib สามารถทำได้โดยปฏิบัติตามขั้นตอนดังนี้:

  • กำหนดขนาดรูปภาพ (figure size) และปรับระยะห่างรอบ subplots
  • สร้างข้อมูลค่าเฉลี่ย (means), ส่วนเบี่ยงเบนมาตรฐาน (std), ดัชนี (index), ความกว้างแท่ง (width) และป้ายกำกับ (labels)
  • สร้าง figure และ subplots ด้วยเมธอด subplots()
  • วาดกราฟแท่งด้วยเมธอด bar()
  • เพิ่มแถบข้อผิดพลาด (error bars) ด้วยเมธอด errorbar() และปรับสเกลแกน Y
  • ตั้งค่าตำแหน่งและป้ายกำกับของ tick บนแกน X
  • แสดงผลรูปภาพด้วยเมธอด show()

ตัวอย่างโค้ด

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

means = (5, 15, 30, 40)
std = (2, 3, 4, 5)
index = np.arange(4)
width = 0.7
labels = ('A', 'B', 'C', 'D')

fig, ax = plt.subplots()
ax.p1 = plt.bar(index, means, width=width, color="red",
                linewidth=2, zorder=5, alpha=0.5)
ax.errs = plt.errorbar(index, means, yerr=std)
plt.ylim(ymax=60)
plt.xticks(index, labels, color='k')
plt.show()

ผลลัพธ์

รูปภาพจะแสดงกราฟแท่ง 4 แท่ง พร้อมแถบข้อผิดพลาด (error bars) ที่บ่งชี้ความแตกต่างทางสถิติ

การแสดงความแตกต่างที่มีนัยสำคัญทางสถิติในกราฟแท่งด้วย Matplotlib

วิธีแสดงชื่อโหนดในกราฟ Matplotlib ด้วย NetworkX

NetworkX เป็นไลบรารีที่ทรงพลังสำหรับการสร้างและวิเคราะห์กราฟเครือข่าย (network graphs) การแสดงชื่อโหนด (node labels) ช่วยให้เข้าใจโครงสร้างกราฟได้ง่ายขึ้น สามารถทำได้ดังนี้:

  • กำหนดขนาดรูปภาพและปรับ padding รอบ subplots
  • สร้างกราฟ (graph) พร้อมกำหนดขอบ (edges), ชื่อ หรือแอตทริบิวต์ของกราฟ
  • เพิ่มโหนดหลายตัวพร้อมกันด้วยเมธอด add_nodes_from()
  • เพิ่มขอบทั้งหมดด้วยเมธอด add_edges_from()
  • วาดกราฟด้วยเมธอด draw() และตั้งค่า with_labels=True
  • แสดงผลด้วยเมธอด show()

ตัวอย่างโค้ด

import matplotlib.pylab as plt
import networkx as nx

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

G = nx.DiGraph()
G.add_nodes_from([1, 2, 3, 4])
G.add_edges_from([(1, 2), (2, 1), (2, 3), (1, 4), (3, 4)])

nx.draw(G, with_labels=True)
plt.show()

ผลลัพธ์

กราฟทิศทาง (directed graph) จะแสดงโหนด 1-4 พร้อมชื่อโหนดและลูกศรแสดงทิศทางของขอบ

การแสดงความแตกต่างที่มีนัยสำคัญทางสถิติในกราฟแท่งด้วย Matplotlib