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

จะหลีกเลี่ยงแถบข้อผิดพลาดที่ทับซ้อนกันใน matplotlib ได้อย่างไร?


เพื่อหลีกเลี่ยงไม่ให้แถบข้อผิดพลาดทับซ้อนกันใน matplotlib เราสามารถทำตามขั้นตอนต่อไปนี้ -

ขั้นตอน

  • กำหนดขนาดรูปและปรับช่องว่างภายในระหว่างและรอบๆ แผนผังย่อย

  • สร้างรายชื่อ

  • รับจุดข้อมูลสำหรับ y1 และ y2 และข้อผิดพลาด ye1, ye2

  • สร้างร่างและชุดแผนย่อย

  • สร้างการเปลี่ยนแปลง 2D affine ที่ไม่แน่นอน trans1 และ trans2 .

  • พล็อต y กับ x เป็นเส้นและ/หรือเครื่องหมายพร้อมแถบข้อผิดพลาดที่แนบมา

  • หากต้องการแสดงรูป ให้ใช้ show() วิธีการ

ตัวอย่าง

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.transforms import Affine2D

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

x = ['Jack', 'James', 'Tom', 'Garry']

y1, y2 = np.random.randn(2, len(x))

ye1, ye2 = np.random.rand(2, len(x))*4+0.3

fig, ax = plt.subplots()

trans1 = Affine2D().translate(-0.1, 0.0) + ax.transData
trans2 = Affine2D().translate(0.1, 0.0) + ax.transData

er1 = ax.errorbar(x, y1, yerr=ye1, marker="*", linestyle="none", transform=trans1)
er2 = ax.errorbar(x, y2, yerr=ye2, marker="o", linestyle="none", transform=trans2)

plt.show()

ผลลัพธ์

มันจะสร้างผลลัพธ์ต่อไปนี้ -

จะหลีกเลี่ยงแถบข้อผิดพลาดที่ทับซ้อนกันใน matplotlib ได้อย่างไร?