2017-02-09 66 views
6

Tôi đang sử dụng đoạn mã sau để vẽ một thanh biểu đồ:matplotlib: cốt truyện nhiều cột của khung dữ liệu gấu trúc trên thanh biểu đồ

import matplotlib.pyplot as pls 
my_df.plot(x='my_timestampe', y='col_A', kind='bar') 
plt.show() 

Cốt truyện hoạt động tốt. Tuy nhiên, tôi muốn cải thiện đồ thị bằng cách có 3 cột: 'col_A', 'col_B', và 'col_C' tất cả trên cốt truyện. Giống như trong ví dụ hình bên dưới:

enter image description here

Tôi muốn các col_A hiển thị màu xanh lam trên trục x, col_B trong màu đỏ bên dưới trục x, và col_C màu xanh lá cây ở trên trục x. Đây có phải là một cái gì đó có thể trong matplotlib? Làm thế nào để tôi thực hiện thay đổi để vẽ tất cả ba cột? Cảm ơn!

Trả lời

19

Bạn có thể vẽ nhiều cột cùng một lúc bằng cách cung cấp danh sách tên cột cho đối số 's y.

df.plot(x="X", y=["A", "B", "C"], kind="bar") 

enter image description here

này sẽ tạo ra một biểu đồ nơi thanh đang ngồi cạnh nhau.

Để chúng chồng lên nhau, bạn cần phải gọi plot nhiều lần và cung cấp các trục để vẽ thành đối số ax cho ô.

import pandas as pd 
import matplotlib.pyplot as plt 
import numpy as np 

y = np.random.rand(10,4) 
y[:,0]= np.arange(10) 
df = pd.DataFrame(y, columns=["X", "A", "B", "C"]) 

ax = df.plot(x="X", y="A", kind="bar") 
df.plot(x="X", y="B", kind="bar", ax=ax, color="C2") 
df.plot(x="X", y="C", kind="bar", ax=ax, color="C3") 

plt.show() 

enter image description here

+0

thứ hai đồ thị hút bởi vì bạn không thể nhìn thấy màu xanh và màu xanh lá cây trong cột thứ 3. Có thể thay đổi là để xem sự kiện giá trị thấp hơn giá trị cuối cùng cao như vậy – hudi

+0

Cốt truyện thứ hai chỉ có ý nghĩa nếu giá trị cao nhất là giá trị từ cột đầu tiên được vẽ cho tất cả các thanh. Điều này có vẻ là trường hợp trong đầu ra mong muốn từ câu hỏi. Nếu không, tôi sẽ không khuyên bạn nên sử dụng loại âm mưu này và thay vào đó hoặc sử dụng một âm mưu xếp chồng lên nhau hoặc các thanh nhóm từ giải pháp đầu tiên ở đây. Tất nhiên người ta có thể thử nghiệm với tính minh bạch ('alpha') và xem liệu giải pháp sau có mang lại kết quả hấp dẫn hay không. – ImportanceOfBeingErnest

+0

ah ok thx để được giải thích – hudi

Các vấn đề liên quan