Comment puis-je faire des parcelles dans Matlab comme ci-dessous?
Je n'aurai pas besoin d'étiquettes, vous pouvez donc les ignorer. J'ai essayé d'utiliser une parcelle 2D normale en donnant un paramètre de 0 à Y pour chaque point de données. Cela aide, mais la majeure partie de la parcelle reste vide / blanche et je ne le veux pas. p>
Comment puis-je résoudre ce problème? P> Edit: P>
Voici comment je trace (jouer avec des valeurs de YLIM n'aidez pas): P>
hold on for i=1:120 if genders(v_labels(i)) == CLASS_WOMAN plot(v_images_lda(i,:) * w_lda,0,'r*'); else plot(v_images_lda(i,:) * w_lda,0,'b.'); end end title('LDA 1D Plot'); ylim([-0.2 0.2]); hold off
4 Réponses :
OK, donc le plus proche que je suis venu à résoudre ce problème est le suivant ainsi en bref, j'ai caché l'axe d'origine et créé une nouvelle située à 0 de l'axe d'origine, et Comme je ne pouvais pas supprimer complètement l'axe des Y, j'ai défini la couleur de la couleur de fond de la figure.
Vous pouvez ensuite décider si vous souhaitez également jouer avec les marques de tick de l'axe X. P> J'espère que cela vous aide! P> P>
Un moyen de faire cela serait d'ajuster le et vous obtiendrez la parcelle suivante: p> ' Xlim ' code>
, ' ylim ' code>
et 'dataspectratio' < / code>
propriétés des axes afin qu'il rend essentiellement une seule ligne. Voici un exemple: p> p>
Voici un moyen de reproduire votre silhouette avec Ceci produira la figure suivante: p> C'est une sorte de manière pirate de Faites-le, comme j'ai trompé Matlab dans l'impression d'un seul sous-lieu. Tous les formats rastralisés ( dsxy2figxy code> et
Annotate Code>
. dsxy2figxy code> peut être difficile à trouver la première fois, car ce n'est pas vraiment sur votre chemin. Il fait partie du paquet MATLAB et est fourni dans les exemples de fonctions. Vous pouvez le rejoindre en la recherchant dans les documents de l'aide et une fois que vous l'avez trouvé, ouvrez-le et enregistrez-le dans un dossier de votre chemin.
p>
JPEG code>,
png code>, etc.) ne vous donneront pas le même résultat, car ils imprimeront tous tout le chiffre, y compris les sous-parcelles non déclarées " ai été. Donc, pour obtenir cet effet, il doit s'agir d'un
EPS code>, et cela fonctionne avec elle, car EPS utilise beaucoup de boîtes de sélection ... de sorte que tout le blanc sans signification est coupé. Vous pouvez ensuite convertir cela en un autre format souhaité. P> p>
Très naïve, mais une solution utile. p>
Terrain en 2D à l'aide de la fonction de tracé MATLAB. Ensuite, utilisez Modifier les propriétés de la figure la compressez à l'axe de l'axe, vous avez besoin d'un tracé 1D !! J'espère que cela aide :) p>
Si vous définissez correctement le paramètre Y sur 0, votre problème "vide / blanc" pourrait ne pas être causé par la fonction de tracé. Pouvez-vous fournir plus d'informations et un code?
Je travaille sur un algorithme de classification de genre à deux classes. Je diminue la dimension à 1 à l'aide d'une analyse discriminante linéaire (LDA) et je tiens à le tracer gentiment. Mettez simplement, j'ai un ensemble de chiffres que je veux tracer sur l'axe X.
@kolisivra Eh bien, je déteste souligner l'évidence, mais avez-vous essayé d'imprimer le jeu de données que vous essayez de comploter pour que tout soit en ordre?
@ P.R. Qu'entendez-vous par «dans l'ordre»?
@kolistivra Comme dans vous n'avez aucune orientation et que le jeu de données tracé est en réalité 2D. Essayez de placer v_images_lda (i :) * w_lda dans une variable tempe avant de le traquer. De cette façon, vous pouvez regarder la variable TEMP et voir ce qui est effectivement tracé.
@ P.R. J'ai essayé (bien que j'étais sûr de toute façon =)), les données sont en réalité 1D, c'est-à-dire V_IMages_LDA (i, :) * w_lda retourne juste un seul numéro.
@kolistriva hmm bien je suppose que c'est votre problème, vous avez besoin d'un tableau pour parcourir. Essayez v_images_lda (i, :). * W_lda (remarquez le '.' Avant '*')
@kolistriva en fait, je me suis trompé de gratter qui ... je suis désolé de n'avoir rien d'autre :(