Hướng dẫn how do you add an average line to a histogram in python? - làm thế nào để bạn thêm một dòng trung bình vào biểu đồ trong python?

Tôi đang vẽ một biểu đồ bằng cách sử dụng matplotlib trong Python và muốn vẽ một dòng biểu thị mức trung bình của bộ dữ liệu, phủ lên trên biểu đồ dưới dạng một đường chấm chấm (hoặc có thể một số màu khác cũng sẽ làm như vậy). Bất kỳ ý tưởng về cách vẽ một dòng được phủ lên trên biểu đồ?

Tôi đang sử dụng lệnh lô (), nhưng không chắc chắn làm thế nào để vẽ một đường thẳng đứng (nghĩa là tôi nên cung cấp giá trị nào cho trục y?

thanks!

Hỏi ngày 23 tháng 4 năm 2013 lúc 23:35Apr 23, 2013 at 23:35

Hướng dẫn how do you add an average line to a histogram in python? - làm thế nào để bạn thêm một dòng trung bình vào biểu đồ trong python?

user308827user308827user308827

18.9K79 Huy hiệu vàng239 Huy hiệu bạc390 Huy hiệu Đồng79 gold badges239 silver badges390 bronze badges

Bạn có thể sử dụng plot hoặc vlines để vẽ một đường thẳng đứng, nhưng để vẽ một đường thẳng đứng từ dưới lên trên cùng của trục y, axvline là chức năng đơn giản nhất để sử dụng. Đây là một ví dụ:

In [80]: import numpy as np

In [81]: import matplotlib.pyplot as plt

In [82]: np.random.seed(6789)

In [83]: x = np.random.gamma(4, 0.5, 1000)

In [84]: result = plt.hist(x, bins=20, color='c', edgecolor='k', alpha=0.65)

In [85]: plt.axvline(x.mean(), color='k', linestyle='dashed', linewidth=1)
Out[85]: 

Kết quả:

Hướng dẫn how do you add an average line to a histogram in python? - làm thế nào để bạn thêm một dòng trung bình vào biểu đồ trong python?

Đã trả lời ngày 23 tháng 4 năm 2013 lúc 23:56Apr 23, 2013 at 23:56

Warren Weckesserwarren WeckesserWarren Weckesser

106K19 Huy hiệu vàng178 Huy hiệu bạc200 Huy hiệu đồng19 gold badges178 silver badges200 bronze badges

1

Đây là chủ đề cũ và bổ sung nhỏ, nhưng một điều tôi thường thích là thể hiện giá trị trung bình bên cạnh dòng:

import numpy as np
import matplotlib.pyplot as plt
np.random.seed(6789)
x = np.random.gamma(4, 0.5, 1000)
result = plt.hist(x, bins=20, color='c', edgecolor='k', alpha=0.65)
plt.axvline(x.mean(), color='k', linestyle='dashed', linewidth=1)

min_ylim, max_ylim = plt.ylim()
plt.text(x.mean()*1.1, max_ylim*0.9, 'Mean: {:.2f}'.format(x.mean()))

Kết quả sau đó tạo ra kết quả sau đây:

Hướng dẫn how do you add an average line to a histogram in python? - làm thế nào để bạn thêm một dòng trung bình vào biểu đồ trong python?

Hướng dẫn how do you add an average line to a histogram in python? - làm thế nào để bạn thêm một dòng trung bình vào biểu đồ trong python?

rysqui

2.6692 Huy hiệu vàng18 Huy hiệu bạc25 Huy hiệu Đồng2 gold badges18 silver badges25 bronze badges

Đã trả lời ngày 24 tháng 10 năm 2018 lúc 4:41Oct 24, 2018 at 4:41

Hướng dẫn how do you add an average line to a histogram in python? - làm thế nào để bạn thêm một dòng trung bình vào biểu đồ trong python?

Tôi sẽ xem xét giá trị lớn nhất trong tập dữ liệu của bạn (nghĩa là các giá trị bin biểu đồ) nhân giá trị đó với một số lớn hơn 1 (giả sử 1.5) và sử dụng nó để xác định giá trị trục y. Bằng cách này, nó sẽ xuất hiện trên biểu đồ của bạn bất kể các giá trị trong biểu đồ.

Đã trả lời ngày 23 tháng 4 năm 2013 lúc 23:38Apr 23, 2013 at 23:38

Smitecsmitecsmitec

3.0291 Huy hiệu vàng15 Huy hiệu bạc12 Huy hiệu đồng1 gold badge15 silver badges12 bronze badges

1


Bạn có thể sử dụng cú pháp cơ bản sau để thêm một dòng trung bình vào một biểu đồ trong matplotlib:

import matplotlib.pyplot as plt
import numpy as np

#create scatter plot
plt.scatter(df.x, df.y)

#add horizontal line at mean value of y
plt.axhline(y=np.nanmean(df.y))

Lưu ý rằng Axhline thêm một đường ngang vào lô và Nanmean tính toán giá trị trung bình (bỏ qua NAN) trong đó đường dây nên được đặt.axhline adds a horizontal line to the plot and nanmean calculates the average value (ignoring NaNs) where the line should be placed.

Ví dụ sau đây cho thấy cách sử dụng cú pháp này trong thực tế.

Giả sử chúng ta có các gấu trúc sau đây:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'x': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
                   'y':[2, 5, 6, 5, 7, 8, 10, 12, 10, 9, 11, 15]})

#view first five rows of DataFrame
df.head()

	x	y
0	1	2
1	2	5
2	3	6
3	4	5
4	5	7

Chúng ta có thể sử dụng mã sau để tạo biểu đồ phân tán của x so với y và thêm một đường ngang thể hiện giá trị y trung bình: giá trị:

import matplotlib.pyplot as plt
import numpy as np

#create scatter plot
plt.scatter(df.x, df.y)

#add horizontal line at mean value of y
plt.axhline(y=np.nanmean(df.y))

Hướng dẫn how do you add an average line to a histogram in python? - làm thế nào để bạn thêm một dòng trung bình vào biểu đồ trong python?

Chúng ta có thể thấy rằng một dòng trung bình đã được thêm vào cốt truyện ngay phía trên giá trị y của 8.

& nbsp; Nếu chúng ta tính toán giá trị y trung bình, chúng ta sẽ thấy rằng đó là 8.333:

#calculate average y-value
np.nanmean(df.y)

8.333333333

Lưu ý rằng chúng ta cũng có thể sử dụng các đối số màu sắc, dòng chính và linecolor, linestyle, and linewidth arguments to specify the color, line type, and line width of the average line, respectively:

import matplotlib.pyplot as plt
import numpy as np

#create scatter plot
plt.scatter(df.x, df.y)

#add horizontal line at mean value of y
plt.axhline(y=np.nanmean(df.y), color='red', linestyle='--', linewidth=3, label='Avg')

Hướng dẫn how do you add an average line to a histogram in python? - làm thế nào để bạn thêm một dòng trung bình vào biểu đồ trong python?

Lưu ý: Bạn có thể tìm thấy tài liệu trực tuyến hoàn chỉnh cho hàm axhline () ở đây.: You can find the complete online documentation for the axhline() function here.

Tài nguyên bổ sung

Các hướng dẫn sau đây giải thích cách thực hiện các nhiệm vụ phổ biến khác trong matplotlib:

Cách thêm đường xu hướng trong matplotlib Cách vẽ một đường thẳng đứng trong matplotlib Cách vẽ nhiều dòng trong matplotlib
How to Draw a Vertical Line in Matplotlib
How to Plot Multiple Lines in Matplotlib

Làm thế nào để bạn vẽ một dòng trung bình trong Python?

Matplotlib với Python..
Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô phụ ..
Tạo các điểm dữ liệu X và Y bằng cách sử dụng Numpy ..
Sử dụng phương thức Subplots () để tạo hình và một tập hợp các ô con ..
Sử dụng phương thức cốt truyện () cho các điểm dữ liệu x và y ..
Tìm giá trị trung bình của mảng, x ..

Làm cách nào để thêm một đường thẳng đứng vào biểu đồ trong Python?

Biểu đồ đường thẳng đứng trên biểu đồ matplotlib ...
X: Chỉ định vị trí trên trục x để vẽ đường dây ..
YMIN và YMAX: Chỉ định phạm vi bắt đầu và kết thúc của dòng ..
Màu sắc: Chỉ định màu của dòng ..
LineStyle: Chỉ định kiểu hoặc loại của dòng ..

Làm thế nào để bạn vẽ một dòng trên một biểu đồ?

Thêm một sơ đồ con vào hình hiện tại, NROWS = 2, NCOLS = 1 và INDEX = 1 ..
Sử dụng phương pháp biểu đồ numpy để có được biểu đồ của một tập hợp dữ liệu ..
Vẽ biểu đồ bằng phương pháp sử dụng phương pháp hist () với edgecolor = black ..
Tại INDEX 2, sử dụng dữ liệu được tính toán (từ biểu đồ numpy).....
Để hiển thị hình, sử dụng phương thức show () ..

Làm cách nào để chèn một đường ngang trong matplotlib?

Hàm axhline () trong mô -đun pyplot của thư viện matplotlib được sử dụng để thêm một đường ngang trên trục.Tham số: Y: Vị trí trên trục y Để vẽ đường thẳng, nó chấp nhận số nguyên.. Parameters: y: Position on Y axis to plot the line, It accepts integers.