Jak narysować drugą oś x w matplotlib

Jak narysować drugą oś x w matplotlib
TR
  • Rejestracja:ponad 2 lata
  • Ostatnio:5 miesięcy
  • Postów:6
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

Spine
  • Rejestracja:około 22 lata
  • Ostatnio:9 minut
  • Postów:6674
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:

Kopiuj
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.

Kopiuj
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


🕹️⌨️🖥️🖱️🎮
edytowany 4x, ostatnio: Spine
TR
Dzięki, drugi przykład to dokładnie to o co mi chodziło

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.