2017-06-28 1 views
0

J'ai un histogramme qui va de -5 à 5 que je peux manipuler et tracer à ma guise, et j'utilise les PDF suivants pour exécuter des tests KS à un échantillon: norme, cauchy, étudiants t, laplace.Symétriser un tracé d'histogramme ou un tableau?

Cependant, je dois symétriser les données (passer de 0 à 5) et lancer des tests KS sur ce point. Ce qui est très bien pour norme et cauchy .. mais je ne peux pas trouver un « étudiants demi t » PDF scipy.stats

donc je voudrais vraiment apprécier votre aide soit:

1) comment tracer un histogramme allant de 5, 4, 3, 2, 1, 0, 1, 2, ... de retour, où il n'y a pas de négatif, cela ne montre pas seulement 0 à 5 et je peux juste mettre loc = 0 comme d'habitude pour mon test KS. (Je souhaite que je pourrais juste faire un plt.MirroredAboutX() ou quelque chose?) Ou,

2) Est-ce que quelqu'un sait si un demi-étudiants t PDF se cache quelque part j'ai passé sous silence?

Merci!

Modifier: Donner des éclaircissements à 1 ci-dessus, en utilisant cette liste

l = [-1.93067027 -1.00267766 -0.6349767 -0.82698775 -0.59277326 -0.67801007 -0.60888202 -0.27387228 -0.03645225 -0.02120668 0.02004329 0.40640109 0.661673 0.77414735 0.86466529 0.53162743 0.64943555 0.7827397 1.8450599 1.44000795] 

plt.hist(l) me montre un histogramme de -2 à 2. enter image description here

et plt.hist(np.abs(l)) me montre un histogramme de 0 à 2. enter image description here

Je veux l'histogramme qui va de 0 à 2, maintenant être mis en miroir/retourné sur l'axe des y de sorte que la gamme de l'axe des x est de 2 à 2 (car il est centré à 0) et c'est cet histogramme sympathique symétrique, tracé.

+0

Je me demande si c'est la même chose que de faire un histogramme pour les valeurs absolues. histogramme (abs (x)). En dehors, il serait vraiment logique de fournir un exemple de code de ce que vous essayez d'atteindre. – ImportanceOfBeingErnest

+0

Merci pour la recommandation, j'ai mis à jour ma question. – layces

+0

C'est mieux. Mais si vous retournez l'histogramme, ne vous trompez-vous pas? Les valeurs sur l'axe des y ne correspondraient plus à aucun nombre raisonnable, n'est-ce pas? – ImportanceOfBeingErnest

Répondre

0

Vous pouvez tracer un histogramme des résultats d'une histogrammation numérique. Vous pouvez ensuite inverser les tableaux pour tracer une version miroir d'entre eux.

import matplotlib.pyplot as plt 
import numpy as np 

l = "-1.93067027 -1.00267766 -0.6349767 -0.82698775 -0.59277326 -0.67801007 -0.60888202 -0.27387228 -0.03645225 -0.02120668 0.02004329 0.40640109 0.661673 0.77414735 0.86466529 0.53162743 0.64943555 0.7827397 1.8450599 1.44000795" 
l = np.array(list(map(lambda x: float(x),l.split()))) 

step = 0.25 
bins = np.arange(0,2.01, step) 
hist, edges = np.histogram(np.abs(l),bins=bins) 

plt.bar(bins[:-1], hist, width=step, align="edge", ec="k") 

plt.bar(-bins[::-1][:-1], hist[::-1], width=step, align="edge", ec="k") 

plt.show() 

enter image description here

Notez que ce faisant, l'axe y a perdu sa signification quantitative, chaque valeur est comptabilisée deux fois dans le complot en miroir.