web-dev-qa-db-fra.com

python: échelle logarithmique du nuage de points

Dans mon code, je prends le logarithme de deux séries de données et je les trace. Je voudrais changer chaque valeur de tick de l'axe des x en la portant à la puissance de e (anti-logarithme du logarithme naturel).

En d'autres termes. Je veux représenter graphiquement les logarithmes des deux séries mais avoir l'axe des x dans les niveaux.

enter image description here

Voici le code que j'utilise.

from pylab import scatter
import pylab
import matplotlib.pyplot as plt
import pandas as pd
from pandas import Series, DataFrame
import numpy as np

file_name = '/Users/joedanger/Desktop/Python/scatter_python.csv'

data = DataFrame(pd.read_csv(file_name))

y = np.log(data['o_value'], dtype='float64')
x = np.log(data['time_diff_day'], dtype='float64')

fig = plt.figure()
plt.scatter(x, y, c='blue', alpha=0.05, edgecolors='none')
fig.suptitle('test title', fontsize=20)
plt.xlabel('time_diff_day', fontsize=18)
plt.ylabel('o_value', fontsize=16)
plt.xticks([-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4])

plt.grid(True)
pylab.show()
32
natsuki_2002

laissez matplotlib prendre le journal pour vous:

fig = plt.figure()
ax = plt.gca()
ax.scatter(data['o_value'] ,data['time_diff_day'] , c='blue', alpha=0.05, edgecolors='none')
ax.set_yscale('log')
ax.set_xscale('log')

Si vous utilisez tous les mêmes marqueurs de taille et de couleur, il est plus rapide d'utiliser plot

fig = plt.figure()
ax = plt.gca()
ax.plot(data['o_value'] ,data['time_diff_day'], 'o', c='blue', alpha=0.05, markeredgecolor='none')
ax.set_yscale('log')
ax.set_xscale('log')
67
tacaswell