Làm thế nào để bạn vẽ hai biến trong python?

Mô-đun

import numpy as np
january_data = weather_data_sorted[weather_data_sorted.date_TimeEST < np.datetime64('2016-01-03')]
1 tạo đối tượng hình và trục (xem
import numpy as np
january_data = weather_data_sorted[weather_data_sorted.date_TimeEST < np.datetime64('2016-01-03')]
2 để biết chi tiết) có thể được sử dụng để tạo biểu đồ theo yêu cầu

Nội dung chính Hiển thị

  • Nếu bạn có các biến khác nhau, bạn sẽ vẽ biểu đồ chuỗi thời gian với dữ liệu đó như thế nào?
  • Thêm hai dòng trên một ô và trục y thứ hai với tỷ lệ khác
  • Làm thế nào để bạn vẽ hai biến trong Python?
  • Làm cách nào để vẽ nhiều biến trong Matplotlib?
  • Làm cách nào để vẽ hai biểu đồ trong Python Matplotlib?

import matplotlib.pyplot as plt # Impot the relevant module

fig, ax = plt.subplots() # Create the figure and axes object

# Plot the first x and y axes:
df.plot(x = 'year', y = 'deaths', ax = ax) 
# Plot the second x and y axes. By secondary_y = True a second y-axis is requested:
# (see https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.html for details)
df.plot(x = 'year', y = 'cheese', ax = ax, secondary_y = True) 

đầu ra

Làm thế nào để bạn vẽ hai biến trong python?

Khi vẽ biểu đồ chuỗi thời gian, cần có biến định lượng. Vẽ biểu đồ của các đối tượng chuỗi thời gian rất có thể là một trong các bước phân tích dữ liệu chuỗi thời gian. Nếu giá trị của một biến được đo tại các thời điểm khác nhau, dữ liệu được gọi là dữ liệu chuỗi thời gian

Nếu bạn có các biến khác nhau, bạn sẽ vẽ biểu đồ chuỗi thời gian với dữ liệu đó như thế nào?

Vẽ các biến khác nhau có thể là một thách thức, đặc biệt là hiển thị các giá trị. Để làm như vậy, bạn cần nhiều trục y, một trục cho mỗi biến, như minh họa trong hình bên dưới

Nhấp để phóng to

ví dụ

  • Lập bản đồ biểu đồ về cách GDP của một quốc gia thay đổi theo thời gian, so với dân số của quốc gia đó

  • Ảnh hưởng của tốc độ gió đến nhiệt độ

  • Vẽ biểu đồ dân số của hai quốc gia theo thời gian, một trên biểu đồ

Ghi chú. Điều này khác với việc so sánh cùng một biến trên hai bộ dữ liệu khác nhau

Có hai cách để tiếp cận vấn đề của hai biến trên đồ thị

  1. Thêm hai dòng trên một biểu đồ và thêm trục y thứ hai với tỷ lệ khác

  2. Vẽ nhiều trục, có cùng trục x

Chúng ta hãy xem cái đầu tiên trong bước này

Thêm hai dòng trên một ô và trục y thứ hai với tỷ lệ khác

Sử dụng biểu đồ hiển thị bên dưới, hãy vẽ biểu đồ nhiệt độ và độ ẩm trên cùng một trục. Vì biểu đồ khá dày đặc (nó có dữ liệu cho mỗi giờ), nên chúng tôi sẽ chỉ vẽ dữ liệu cho hai ngày đầu tiên của tháng Giêng

Bạn có thể xem cách danh sách được lọc trong Jupyter Notebook đi kèm cho hoạt động này. Chúng tôi muốn đạt được biểu đồ này bằng cách làm theo các bước dưới đây

Nhấp để phóng to

Làm theo các bước dưới đây

Bước 1

Tạo cốt truyện theo cách thông thường

Mã số

import numpy as np
january_data = weather_data_sorted[weather_data_sorted.date_TimeEST < np.datetime64('2016-01-03')]

Bước 2

Có hai trục chia sẻ cùng một không gian cốt truyện. Đặt tên của các trục đầu tiên là

import numpy as np
january_data = weather_data_sorted[weather_data_sorted.date_TimeEST < np.datetime64('2016-01-03')]
3 (đối với trục nhiệt độ), thay vì chỉ trục như chúng ta thường đặt

Mã số

fig, temp_ax = plt.subplots()
fig.set_size_inches(14, 8)

Bước 3

Bây giờ chúng ta cần thêm một trục khác chia sẻ trục x của nó với các trục chính của chúng ta. Chúng tôi làm điều này bằng cách gọi phương thức Twinx trên các trục chính. (Điều này sẽ trả về một trục mới đã được định cấu hình để đánh dấu trục y và nhãn được vẽ ở bên phải. )

Mã số

humidity_ax = temp_ax.twinx()

Thiết lập nhãn và đánh dấu ngay bây giờ. Bất kỳ nhãn nào được chia sẻ đều có thể được áp dụng cho các trục chính, theo cùng một phương pháp mà bạn đã thấy

Mã số

temp_ax.set_title("Hourly Temperature in NYC")
temp_ax.set_xlabel("Date & Time")
temp_ax.set_ylabel("Temperature (ºF)")

đầu ra

________số 8

Bước 5

Tiếp theo, nhãn duy nhất cần được đặt cụ thể trên các trục độ ẩm là nhãn trục y của nó

Mã số

humidity_ax.set_ylabel("Humidity (%)")

Đầu ra.
~~~
Văn bản(0, 0. 5, ‘Độ ẩm (%)’)
~~~

Bước 6

Bây giờ, hãy đặt vị trí dấu kiểm trên trục x bằng cách sử dụng ConciseDateFormatter

Mã số

import numpy as np
january_data = weather_data_sorted[weather_data_sorted.date_TimeEST < np.datetime64('2016-01-03')]
0

Bước 7

Tiếp theo, vẽ các đường bằng hàm

import numpy as np
january_data = weather_data_sorted[weather_data_sorted.date_TimeEST < np.datetime64('2016-01-03')]
4.
(Lưu ý. Chúng ta phải gán các giá trị trả về cho các biến vì chúng ta sẽ cần sử dụng chúng để thiết lập chú giải sau này. )

Mã số

import numpy as np
january_data = weather_data_sorted[weather_data_sorted.date_TimeEST < np.datetime64('2016-01-03')]
2

Bước 8

Bây giờ, hãy vẽ đường nhiệt độ trên

import numpy as np
january_data = weather_data_sorted[weather_data_sorted.date_TimeEST < np.datetime64('2016-01-03')]
3 và đường độ ẩm trên
import numpy as np
january_data = weather_data_sorted[weather_data_sorted.date_TimeEST < np.datetime64('2016-01-03')]
6

Bước 9

Bước cuối cùng là vẽ huyền thoại. Chúng tôi sẽ gặp sự cố nhỏ nếu chúng tôi cố gắng thực hiện tự động

Nếu chúng ta gọi là

import numpy as np
january_data = weather_data_sorted[weather_data_sorted.date_TimeEST < np.datetime64('2016-01-03')]
7, nó sẽ tạo ra một huyền thoại chỉ dành cho đường nhiệt độ. Tương tự,
import numpy as np
january_data = weather_data_sorted[weather_data_sorted.date_TimeEST < np.datetime64('2016-01-03')]
8 sẽ vẽ chú thích chỉ bằng đường độ ẩm. Nếu chúng ta gọi cả hai phương thức, chúng ta sẽ nhận được hai chú giải (mặc dù có thể thực hiện thủ công. )

Tuy nhiên, điều này có thể được thực hiện theo hai cách

A. Cách đầu tiên là một danh sách các dòng để thêm vào chú thích

Thí dụ. cây rìu. legend([dòng1, dòng2, dòng3], [“Nhãn 1”, “Nhãn 2”, “Nhãn 3”])

Hãy xem một ví dụ từ cùng một biểu đồ được hiển thị ở trên. Vì Python cho phép kết hợp các danh sách bằng cách cộng chúng lại với nhau, nên chúng ta có thể đơn giản hóa câu lệnh này bằng cách sử dụng đoạn mã dưới đây