Lissé histogramme 2D à l'aide de matplotlib et imshow
J'essaie de faire un histogramme 2D de la parcelle et à l'obtention d'une "lisse" de l'image par une sorte d'interpolation. Donc je ne les suivants combinant plt.hist2d
et plt.imshow
import matplotlib.pyplot as plt
import numpy as np
data = np.loadtxt("parametre_optMC.dat", skiprows=50, usecols=(1,2))
h, x, y, p = plt.hist2d(data[:,0], data[:,1], bins = 20)
plt.imshow(h, origin = "lower", interpolation = "gaussian")
plt.savefig("test.pdf")
Comme vous pouvez le voir sur l'image ci-dessous, les deux tracés se superposent et qui est le problème pour lequel j'ai besoin d'aide
L'ajout de la fcf fonctionne, mais je perds axes dimenions :
import matplotlib.pyplot as plt
import numpy as np
data = np.loadtxt("parametre_optMC.dat", skiprows=50, usecols=(1,2))
h, x, y, p = plt.hist2d(data[:,0], data[:,1], bins = 20)
plt.clf()
plt.imshow(h, origin = "lower", interpolation = "gaussian")
plt.savefig("test.pdf")
Vous pourriez encore avoir des données à partir d'un graphique précédent dans votre figure. Si vous ne
Ok, ça fonctionne, mais je perds axes dimensions. J'ai éditer le post.
- Vous ne voulez voir que le lissage de l'image? Je ne suis pas sûr de ce que la question est.
Oui, je veux seulement le lissé. Mais comme vous pouvez le voir les axes d'échelle ne sont pas les mêmes avant et après
Essayez de regarder les réponses ici: stackoverflow.com/q/18696122/1461850
plt.clf()
et plt.close()
il sera effacé.Ok, ça fonctionne, mais je perds axes dimensions. J'ai éditer le post.
- Vous ne voulez voir que le lissage de l'image? Je ne suis pas sûr de ce que la question est.
Oui, je veux seulement le lissé. Mais comme vous pouvez le voir les axes d'échelle ne sont pas les mêmes avant et après
imshow
.Essayez de regarder les réponses ici: stackoverflow.com/q/18696122/1461850
OriginalL'auteur Ger | 2014-05-27
Vous devez vous connecter pour publier un commentaire.
Il serait peut-être préférable de tracer une estimation de densité du noyau?
OriginalL'auteur mwaskom
À votre première question:
Vous devez effacer les données d'un graphique précédent, en mettant les points suivants avant de la parcelle doit faire ceci:
À votre deuxième question:
Pour modifier les valeurs de l'axe que je vous suggère de le
extent
paramètre (voir cette réponse).par exemple quelque chose comme:
OriginalL'auteur atomh33ls
Vous avez besoin pour ajouter de la "mesure" du paramètre à vous imshow de commande. imshow accepte une grille de valeurs arbitraires, mais ne connais pas les dimensions.
OriginalL'auteur bejota