Jak narysować drugą oś x w matplotlib

0

Cześć
Muszę narysować wykres gdzie do długości (oś x) będzie przypisana wartość y (to umiem zrobić). Na wykresie musi być jeszcze górna oś x gdzie na konkretnej długości będzie zaznaczony nr punktu.wykres.png

2

Takie coś wyprodukował Chat GPT: https://chat.openai.com/share/1ca238ae-ee93-4daa-ab56-d98ee227a192
Trochę to przerobiłem, bo numery puntów to dla niego były pozycje Y:

import matplotlib.pyplot as plt

# Przykładowe dane
x = [1, 2, 3, 4, 5]
y = [10, 15, 13, 18, 25]

# Tworzenie wykresu
plt.plot(x, y, marker='o', linestyle='-')

# Dodawanie numerów punktów
for i, j in enumerate(y):
    plt.text(x[i], j, str(i+1), ha='center', va='bottom')

# Wyświetlenie wykresu
plt.show()

Screenshot_20231022-230350.png


edit:

Pokombinowałem jeszcze trochę, żeby numery punktów były wyświetlane nad wykresem, tak jak na Twojej ilustracji.

import matplotlib.pyplot as plt

# Przykładowe dane
x = [3, 6, 8, 9, 11]
y = [10, 15, 13, 18, 25]

# Tworzenie wykresu
f, ax1 = plt.subplots()
ax1.plot(x, y, marker='o', linestyle='-')

# Tworzenie drugiej osi X nad wykresem
ax2 = ax1.twiny()
ax2.set_xlim(ax1.get_xlim())

# Dodawanie numerów punktów na drugiej osi X
ax2.xaxis.set_ticks(x, labels = [str(l + 1) for l in range(len(x))])


# Wyświetlenie wykresu
plt.show()

screenshot-20231023023125.png

1 użytkowników online, w tym zalogowanych: 0, gości: 1