Hướng dẫn dùng scattered def python

1. Khái niệm cơ bản :

Biểu đồ phân tán được sử dụng để vẽ các điểm dữ liệu trên trục hoành và trục tung để thể hiện mức độ ảnh hưởng của một biến này bởi biến khác. Mỗi hàng trong bảng dữ liệu được biểu thị bằng một điểm đánh dấu, vị trí phụ thuộc vào giá trị của nó trong các cột được đặt trên trục X và Y. Một biến thứ ba có thể được đặt để tương ứng với màu sắc hoặc kích thước của các điểm đánh dấu, do đó thêm một chiều khác vào biểu đồ.

Nội dung chính

  • 1. Khái niệm cơ bản :
  • 2. Ví dụ minh hoạ :
  • 1. Khái niệm cơ bản :
  • 2. Ví dụ minh hoạ :
  • Làm thế nào để tạo BoxPlot Python bằng Matplotlib?
  • Làm thế nào để tạo Scatter Plot?
  • Python Scatter Plot sử dụng plt.plot
  • Nhiều hơn một plot
  • Kết luận

Ví dụ dưới đây vẽ một biểu đồ phân tán của các cấp lớp so với cấp độ của nam và nữ bằng hai màu sắc khác nhau.

import matplotlib.pyplot as plt girls_grades = [89, 90, 70, 89, 100, 80, 90, 100, 80, 34] boys_grades = [30, 29, 49, 48, 100, 48, 38, 45, 20, 30] grades_range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] fig=plt.figure() ax=fig.add_axes([0,0,1,1]) ax.scatter(grades_range, girls_grades, color='r') ax.scatter(grades_range, boys_grades, color='b') ax.set_xlabel('Grades Range') ax.set_ylabel('Grades Scored') ax.set_title('scatter plot') plt.show()

Hướng dẫn dùng scattered def python

2. Ví dụ minh hoạ :

Ví dụ 1 :Biểu diễn biểu đồ phân tán với các màu và kích thước điểm đánh dấu khác nhau.

import numpy as np import matplotlib.pyplot as plt import matplotlib.cbook as cbook # Load a numpy record array from yahoo csv data with fields date, open, close, # volume, adj_close from the mpl-data/example directory. The record array # stores the date as an np.datetime64 with a day unit ('D') in the date column. with cbook.get_sample_data('goog.npz') as datafile: price_data = np.load(datafile)['price_data'].view(np.recarray) price_data = price_data[-250:] # get the most recent 250 trading days delta1 = np.diff(price_data.adj_close) / price_data.adj_close[:-1] # Marker size in units of points^2 volume = (15 * price_data.volume[:-2] / price_data.volume[0])**2 close = 0.003 * price_data.close[:-2] / 0.003 * price_data.open[:-2] fig, ax = plt.subplots() ax.scatter(delta1[:-1], delta1[1:], c=close, s=volume, alpha=0.5) ax.set_xlabel(r'$\Delta_i$', fontsize=15) ax.set_ylabel(r'$\Delta_{i+1}$', fontsize=15) ax.set_title('Volume and percent change') ax.grid(True) fig.tight_layout() plt.show()

Ví dụ 2 :

import numpy as np import matplotlib.pyplot as plt # Fixing random state for reproducibility np.random.seed(19680801) N = 50 x = np.random.rand(N) y = np.random.rand(N) colors = np.random.rand(N) area = (30 * np.random.rand(N))**2 # 0 to 15 point radii plt.scatter(x, y, s=area, c=colors, alpha=0.5) plt.show()

Ví dụ 3 : Sử dụng keywords để tạo plot

Có một số trường hợp bạn có dữ liệu ở dạng cho phép bạn truy cập các biến cụ thể bằng chuỗi. Ví dụ: numpy.recarray hoặc pandas.DataFrame.

Matplotlib cho phép ta cung cấp một đối tượng như vậy với đối số từ khóa dữ liệu. Nếu được cung cấp, có thể tạo các plot các chuỗi tương ứng với các biến này.

import matplotlib.pyplot as plt np.random.seed(19680801) data = {'a': np.arange(50), 'c': np.random.randint(0, 50, 50), 'd': np.random.randn(50)} data['b'] = data['a'] + 10 * np.random.randn(50) data['d'] = np.abs(data['d']) * 100 fig, ax = plt.subplots() ax.scatter('a', 'b', c='c', s='d', data=data) ax.set(xlabel='entry a', ylabel='entry b') plt.show()

1. Khái niệm cơ bản :

Biểu đồ phân tán được sử dụng để vẽ các điểm dữ liệu trên trục hoành và trục tung để thể hiện mức độ ảnh hưởng của một biến này bởi biến khác. Mỗi hàng trong bảng dữ liệu được biểu thị bằng một điểm đánh dấu, vị trí phụ thuộc vào giá trị của nó trong các cột được đặt trên trục X và Y. Một biến thứ ba có thể được đặt để tương ứng với màu sắc hoặc kích thước của các điểm đánh dấu, do đó thêm một chiều khác vào biểu đồ.

Nội dung chính

  • 1. Khái niệm cơ bản :
  • 2. Ví dụ minh hoạ :
  • Làm thế nào để tạo BoxPlot Python bằng Matplotlib?
  • Làm thế nào để tạo Scatter Plot?
  • Python Scatter Plot sử dụng plt.plot
  • Nhiều hơn một plot
  • Kết luận

Ví dụ dưới đây vẽ một biểu đồ phân tán của các cấp lớp so với cấp độ của nam và nữ bằng hai màu sắc khác nhau.

import matplotlib.pyplot as plt
girls_grades = [89, 90, 70, 89, 100, 80, 90, 100, 80, 34]
boys_grades = [30, 29, 49, 48, 100, 48, 38, 45, 20, 30]
grades_range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
fig=plt.figure()
ax=fig.add_axes([0,0,1,1])
ax.scatter(grades_range, girls_grades, color='r')
ax.scatter(grades_range, boys_grades, color='b')
ax.set_xlabel('Grades Range')
ax.set_ylabel('Grades Scored')
ax.set_title('scatter plot')
plt.show()

2. Ví dụ minh hoạ :

Ví dụ 1 :Biểu diễn biểu đồ phân tán với các màu và kích thước điểm đánh dấu khác nhau.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook

# Load a numpy record array from yahoo csv data with fields date, open, close,
# volume, adj_close from the mpl-data/example directory. The record array
# stores the date as an np.datetime64 with a day unit ('D') in the date column.
with cbook.get_sample_data('goog.npz') as datafile:
    price_data = np.load(datafile)['price_data'].view(np.recarray)
price_data = price_data[-250:]  # get the most recent 250 trading days

delta1 = np.diff(price_data.adj_close) / price_data.adj_close[:-1]

# Marker size in units of points^2
volume = (15 * price_data.volume[:-2] / price_data.volume[0])**2
close = 0.003 * price_data.close[:-2] / 0.003 * price_data.open[:-2]

fig, ax = plt.subplots()
ax.scatter(delta1[:-1], delta1[1:], c=close, s=volume, alpha=0.5)

ax.set_xlabel(r'$\Delta_i$', fontsize=15)
ax.set_ylabel(r'$\Delta_{i+1}$', fontsize=15)
ax.set_title('Volume and percent change')

ax.grid(True)
fig.tight_layout()

plt.show()

Ví dụ 2 :

import numpy as np
import matplotlib.pyplot as plt

# Fixing random state for reproducibility
np.random.seed(19680801)


N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = (30 * np.random.rand(N))**2  # 0 to 15 point radii

plt.scatter(x, y, s=area, c=colors, alpha=0.5)
plt.show()

Ví dụ 3 : Sử dụng keywords để tạo plot

Có một số trường hợp bạn có dữ liệu ở dạng cho phép bạn truy cập các biến cụ thể bằng chuỗi. Ví dụ: numpy.recarray hoặc pandas.DataFrame.

Matplotlib cho phép ta cung cấp một đối tượng như vậy với đối số từ khóa dữ liệu. Nếu được cung cấp, có thể tạo các plot các chuỗi tương ứng với các biến này.

import matplotlib.pyplot as plt
np.random.seed(19680801)

data = {'a': np.arange(50),
        'c': np.random.randint(0, 50, 50),
        'd': np.random.randn(50)}
data['b'] = data['a'] + 10 * np.random.randn(50)
data['d'] = np.abs(data['d']) * 100

fig, ax = plt.subplots()
ax.scatter('a', 'b', c='c', s='d', data=data)
ax.set(xlabel='entry a', ylabel='entry b')
plt.show()

Hôm nay, chúng ta sẽ nói về Python Scatter Plot. Ngoài ra, chúng ta sẽ học cách vẽ Scatter Plot trong Lập trình Python . Hơn nữa, chúng tôi sẽ giới thiệu cách tạo Python Boxplot bằng Matplotlib.

Các bài viết liên quan:

Làm thế nào để tạo BoxPlot Python bằng Matplotlib?

Biểu Python cho chúng ta biết tập dữ liệu được phân phối như thế nào. Một cách sử dụng khác là phân tích dữ liệu được phân phối như thế nào trên các tập dữ liệu. Một biểu đồ như vậy tạo ra một âm mưu hình hộp và tóm tắt nhiều biến số khác nhau . Đầu tiên chúng ta hãy lấy một ví dụ để chúng ta có thể giải thích cấu trúc của nó tốt hơn.

import matplotlib.pyplot as plt # thêm thư viện
np.random.seed(10) # ngẫu nghiên
one=np.random.normal(100,10,200) #tạo dữ liệu phân phối chuẩn
two=np.random.normal(80, 30, 200)#tạo dữ liệu phân phối chuẩn
three=np.random.normal(90, 20, 200)#tạo dữ liệu phân phối chuẩn
four=np.random.normal(70, 25, 200)#tạo dữ liệu phân phối chuẩn
to_plot=[one,two,three,four]
fig=plt.figure(1,figsize=(9,6))
ax=fig.add_subplot(111)
bp=ax.boxplot(to_plot)
fig.savefig('boxplot.png',bbox_inches='tight') # lưu kết quả

Kết quả:

Cấu trúc:

  • Hộp biểu thị các phần tư của tập dữ liệu.
  • Đường kéo dài và biểu thị phần còn lại của sự phân bố.
  • Một hàm của phạm vi giữa các phần tư xác định các điểm ngoại lệ.

Đầu vào cho điều này có thể là một danh sách, một mảng NumPy , một đối tượng Dòng gấu trúc , một mảng, một danh sách các vectơ, một DataFrame dạng dài hoặc một DataFrame dạng rộng.

Hãy lấy một ví dụ khác.

ax = sn.boxplot(x="day", y="total_bill", hue="smoker",data=tips, palette="Set3")
plt.show()

Làm thế nào để tạo Scatter Plot?

Biểu đồ phân tán trong Python, chúng ta hãy biểu thị cách hai hoặc nhiều đối tượng liên quan với nhau.

Nó cũng cho phép chúng tôi xác định những giá trị ngoại lệ khác với tất cả những giá trị khác.

np.random.seed(19680801) #random
N=50
x=y=colors=np.random.rand(N) # ngẫu nhiên
area = (30 * np.random.rand(N))**2
plt.scatter(x, y, s=area, c=colors, alpha=0.5) # scatter plot

Python Scatter Plot sử dụng plt.plot

x=np.linspace(0,10,30)
from scipy import sin
y=np.sin(x)
plt.plot(x,y,'o',color='purple')

Tạo Scatter Plot trong Python bằng plt.plot

plt.plot(x,y,'-p',color='green',
markersize=15,linewidth=4,
markerfacecolor='white',
markeredgecolor='gray',
markeredgewidth=1)

Nhiều hơn một plot

plt.plot(np.random.rand(20),'*')
plt.plot(np.random.rand(20),'o')
plt.show()

Vì vậy, đây là tất cả về Python Scatter Plot. Hy vọng bạn thích giải thích của chúng tôi.

Kết luận

Do đó, chúng tôi đã học cách tạo biểu đồ hộp trong Python và biểu đồ phân tán với matplotlib. Hãy theo dõi để biết thêm các biểu đồ. Để lại ý kiến ​​của bạn trong phần bình luận bên dưới.