Logarithmische Skala

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
phenomina1
User
Beiträge: 2
Registriert: Freitag 6. März 2020, 16:44

Hallo,
ich habe die x-Werte [0.2,0.65,0.91,1] und die y-Werte [1,0.999,0.98,0.85]. Ich plotte das ganze mit pyplot und würde die y-Werte gerne so "logarithmisch" anzeigen lassen, dass das ganze einer Gerade zumindest ähnelt, sprich, dass der Abstand zwischen 0.999 und 0.98 optisch ungefähr genauso groß ist, wie der zwischen 0.98 und 0.85. plt.yscale('log') habe ich schon versucht, das klappt nicht so, wie ich es mir vorstelle. Ich freue mich sehr über Hilfe! Danke schon mal!
tonikae
User
Beiträge: 90
Registriert: Sonntag 23. Februar 2020, 10:27

Vielleicht hilft dir das weiter:

Code: Alles auswählen

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(ncols=2,figsize=(10,3))
y_werte = np.array([1,0.999,0.98,0.85])
x_werte = np.arange(len(y_werte))
ax[0].plot(x_werte,y_werte,'Red', linewidth=0.5)
ax[1].semilogx(x_werte, y_werte, 'Blue', linewidth=0.5)
plt.show()
tonikae
User
Beiträge: 90
Registriert: Sonntag 23. Februar 2020, 10:27

Gut ich hab es noch einmal kurz mit allen richtigen X/Y-Werten und allen Darstellungsformen gestrickt.

Code: Alles auswählen

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['toolbar'] = 'None'
fig, ax = plt.subplots(ncols=4, figsize=(18,3))

y_werte = np.array([1,0.999,0.98,0.85])
x_werte = np.array([0.2,0.65,0.91,1]) 

ax[0].plot(x_werte,y_werte,'Blue', linewidth=0.5)
ax[1].semilogx(x_werte, y_werte, 'Blue', linewidth=0.5)
ax[2].semilogy(x_werte, y_werte, 'Black', linewidth=0.5)
ax[3].loglog(x_werte, y_werte, 'Black', linewidth=0.5)

ax[0].grid(True)
ax[1].grid(True)
ax[2].grid(True)
ax[3].grid(True)

ax[0].set_title('Normal',loc='left')
ax[1].set_title('Log X',loc='left')
ax[2].set_title('Log Y',loc='left')
ax[3].set_title('Log X/Y',loc='left')

ax[0].set_facecolor('Greenyellow')  
ax[1].set_facecolor('Aqua')
ax[2].set_facecolor('Lightgrey') 
ax[3].set_facecolor('White') 

plt.gcf().canvas.set_window_title("Mein Fenstertitel")
plt.gcf().patch.set_facecolor('Green') 
plt.tight_layout()
plt.show()
Antworten