Tôi có một danh sách các cặp [a, b]
mà tôi muốn vẽ với matplotlib
trong Python là tọa độ X-Y thực tế. Hiện tại, nó đang tạo ra hai ô, trong đó chỉ số của danh sách cung cấp cho tọa độ X và các giá trị y của lô thứ nhất là a
trong các cặp và các giá trị y của lô thứ hai là b
trong các cặp.
Để làm rõ, dữ liệu của tôi trông như thế này: li = [[a,b], [c,d], ... , [t, u]]
Tôi muốn thực hiện một lớp lót mà chỉ gọi plt.plot[]
không chính xác. Nếu tôi không yêu cầu một lớp lót, tôi có thể làm điều đó một cách tầm thường:
xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot[xs, ys]
Làm thế nào tôi có thể lấy matplotlib để vẽ các cặp này như tọa độ x-y?
Dữ liệu mẫu
# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
Âm mưu không chính xác
plt.plot[li]
plt.title['Incorrect Plot:\nEach index of the tuple plotted as separate lines']
Cốt truyện mong muốn
- Điều này tạo ra cốt truyện chính xác, nhưng với nhiều dòng mã được sử dụng để giải nén
0. Tôi cần giải nén và vẽ đồ thị với một dòng mã duy nhất, không phải là nhiều danh sách tổng hợp.# sample data li = list[zip[range[1, 14], range[14, 27]]] li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot[xs, ys]
plt.title['Correct Plot:\nBut uses to many lines to unpack li']
Tạo một danh sách cho các tọa độ x ..
Tạo một danh sách cho tọa độ y ..
Vượt qua hai danh sách này để vẽ hàm ..
Tạo một danh sách cho các tọa độ x ..
Tạo một danh sách cho tọa độ y ..
Vượt qua hai danh sách này để vẽ hàm ..
Prerequisites:
- Matplotlib
- numpy
Làm thế nào để bạn vẽ các điểm dữ liệu trong Python?
Sử dụng plt.scatter [] để vẽ các điểm gọi plt. Phân tán [x, y] với x như là một chuỗi các tọa độ x và y như một chuỗi tọa độ y tương ứng để vẽ các điểm.
Làm thế nào để bạn vẽ nhiều dữ liệu trong Python?Naive method
Bạn có thể vẽ nhiều dòng từ dữ liệu được cung cấp bởi DataFrame trong Python bằng matplotlib. Bạn có thể làm điều đó bằng cách chỉ định các cột khác nhau của DataFrame là tham số trục x và y trong hàm matplotlib.pyplot.plot [].
Cách tiếp cận
- Nhập mô -đun
- Tạo mảng numpy cho tọa độ
- Tạo một danh sách cho tọa độ y
- Vượt qua hai danh sách này để vẽ hàm
Example:
Python3
# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
1 # sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
2# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
3# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
4 # sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
5# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
6# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
8__xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot[xs, ys]
plt.title['Correct Plot:\nBut uses to many lines to unpack li']
2# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
4 # sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
5# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
8# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7plt.plot[li]
plt.title['Incorrect Plot:\nEach index of the tuple plotted as separate lines']
0# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
6# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7plt.plot[li]
plt.title['Incorrect Plot:\nEach index of the tuple plotted as separate lines']
0# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
6____17plt.plot[li]
plt.title['Incorrect Plot:\nEach index of the tuple plotted as separate lines']
222221718matplotlib
1
matplotlib
2
Output:
Phương pháp 2: Sử dụng mảng Numpy
Hàm được sử dụng: Sắp xếp [] arrange[]
Cú pháp: np.arange [bắt đầu, kết thúc, bước]np.arange[start,end,step]
Parameters:
- Bắt đầu: Giá trị bắt đầustarting value
- Kết thúc: Giá trị kết thúc ending value
- Bước: Kích thước bước, theo mặc định là 1. step size, by default it is 1.
Cách tiếp cận
- Nhập mô -đun
- Tạo mảng numpy cho tọa độ
- Vượt qua các mảng này để vẽ
Example:
Python3
# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
1 matplotlib
4# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
1 # sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
2# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
3# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
4 matplotlib
9# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
6# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7__62xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot[xs, ys]
plt.title['Correct Plot:\nBut uses to many lines to unpack li']
2# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
4 matplotlib
9a
9# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7b
1# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7b
3# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
6a
5matplotlib
1
matplotlib
2
Output:
Phương pháp 3: Danh sách danh sách
Tạo danh sách danh sách tất cả các điểm sẽ được vẽ cũng có thể là một trong những cách để đạt được yêu cầu của chúng tôi. Sau khi tạo một danh sách như vậy, nó không thể được truyền trực tiếp để vẽ, trước tiên, một chuyển đổi cần phải thực hiện để có được tọa độ X và Y.
Cách tiếp cận
- Nhập mô -đun
- Tạo danh sách các danh sách cho tọa độ
- Lấy chuyển vị
- Chuyển tọa độ cho cốt truyện
Thí dụ
Python3
# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
1 matplotlib
4# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
1 # sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
2# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
3# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
4 matplotlib
9# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
6# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7__62li = [[a,b], [c,d], ... , [t, u]]
5
# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
5# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
6# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7plt.plot[li]
plt.title['Incorrect Plot:\nEach index of the tuple plotted as separate lines']
2plt.plot[]
0li = [[a,b], [c,d], ... , [t, u]]
5
# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
5# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
8# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
8plt.plot[]
0xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot[xs, ys]
plt.title['Correct Plot:\nBut uses to many lines to unpack li']
2# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
4 matplotlib
9a
9# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7b
1# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7b
3# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
6a
5li = [[a,b], [c,d], ... , [t, u]]
5
# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
5plt.plot[li]
plt.title['Incorrect Plot:\nEach index of the tuple plotted as separate lines']
2# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7plt.plot[li]
plt.title['Incorrect Plot:\nEach index of the tuple plotted as separate lines']
6plt.plot[]
0li = [[a,b], [c,d], ... , [t, u]]
5
# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
5plt.plot[li]
plt.title['Incorrect Plot:\nEach index of the tuple plotted as separate lines']
4# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7b
1plt.plot[]
0li = [[a,b], [c,d], ... , [t, u]]
5
# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
5plt.plot[li]
plt.title['Incorrect Plot:\nEach index of the tuple plotted as separate lines']
6# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
7plt.plot[li]
plt.title['Incorrect Plot:\nEach index of the tuple plotted as separate lines']
0xs = [x[0] for x in li]
ys = [x[1] for x in li]
plt.plot[xs, ys]
plt.title['Correct Plot:\nBut uses to many lines to unpack li']
1# sample data
li = list[zip[range[1, 14], range[14, 27]]]
li → [[1, 14], [2, 15], [3, 16], [4, 17], [5, 18], [6, 19], [7, 20], [8, 21], [9, 22], [10, 23], [11, 24], [12, 25], [13, 26]]
21matplotlib
1
matplotlib
1
matplotlib
2
Output: