Seite 1 von 1

Logarithmische Skala

Verfasst: Dienstag 11. August 2020, 11:45
von phenomina1
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!

Re: Logarithmische Skala

Verfasst: Montag 31. August 2020, 08:36
von tonikae
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()

Re: Logarithmische Skala

Verfasst: Montag 31. August 2020, 10:57
von tonikae
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()