IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

[errorbar] Modifier la largeur des traits horizontaux


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Par défaut [errorbar] Modifier la largeur des traits horizontaux
    Bonjour,


    J'essaye de tracer un graphique du type errorbar et de type un X et plusieurs Y. Voici une figure du résultat obtenu pour le moment. Comme on peux le voir les barres horizontales sont très larges et ne me plaisent pas. Pourriez vous m'aider à réduire la largeur des barres horizontales.



    Voici le code matlab utiliser pour la réalisation de la figure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    clear all
     
    load var.dat;
    tfen=49;
    t(:,1)=var(1:tfen,1);
    t(:,2)=var(1:tfen,1);
    t(:,3)=var(1:tfen,1);
    deb=var(1,1)-10;
    fin=var(tfen,1)+10;
    y=var(1:tfen,2:4);
    e=var(1:tfen,5:6);
    e(tfen,3)=0;
     
    % Create multiple error bars using matrix input to errorbar
    figure('PaperSize',[20.98 29.68])
    xlim([deb fin]);
    box('on');
    hold('all');
    errorbar1 = errorbar(t,y,e);
    set(errorbar1(3),'DisplayName','Sans bruit');
    set(errorbar1(2),'DisplayName','Validé','Color',[0 0 1]);
    set(errorbar1(1),'Marker','*','LineStyle','none','DisplayName','Mesuré',...
        'Color',[0 0.498 0]);
    % Create xlabel
    xlabel('Temps (s)');
    % Create ylabel
    ylabel('A''');
    % Create legend
    legend1 = legend('show');
    set(legend1,'Location','Best');
    print -depsc test.eps;
    Merci d'avance pour votre aide

  2. #2
    Membre Expert
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Par défaut
    As tu essayé de changer la propriété LineWidth . Par défaut c'est 0.5 points.
    Toutes les propriétes d'errorbar sont ici

    Tu retrouveras LineStyle et Marker que tu as déjà utilisé.

  3. #3
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    @tug : je pense qu'il parle de la largeur des barres d'erreur.

    Si oui les propriétés à changer en regardant la doc :
    LDataarray equal in size to XData and YDataErrorbar length below data point. The errorbar function
    uses this data to determine the length of the errorbar below each data point.
    Specify these values in data units. See also UData.

    UDataarray equal in size to XData and YDataErrorbar length above data point. The errorbar function
    uses this data to determine the length of the errorbar above each data point.
    Specify these values in data units.
    J'ai fait un test simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    X = 0:pi/10:pi;
    Y = sin(X);
    E = std(Y)*ones(size(X));
    h=errorbar(X,Y,E);
    pause(5)
     
    d=get(h,'LData');%on peut vérifier qu'on a les mêmes valeurs dans UData
    d=d*0.5;%on diminue la taille de moitié
    set(h,'LData',d,'UData',d);
    Enfin je crois, en tout cas c'est ces propriétés-là qu'il faut étudier.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Tu peux toujours faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    X = 0:pi/10:pi;
    Y = sin(X);
    E = std(Y)*ones(size(X));
    h=errorbar(X,Y,E);
     
    hh=get(h,'children');
     
    x = get(hh(2),'xdata');
     
    w = .5; % Largeur des traits horizontaux (valeur à modifier)
     
    x(4:9:end) = x(1:9:end)-w/2;
    x(7:9:end) = x(1:9:end)-w/2;
    x(5:9:end) = x(1:9:end)+w/2;
    x(8:9:end) = x(1:9:end)+w/2;
     
    set(hh(2),'xdata',x(:))

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10
    Par défaut
    Merci beaucoup pour vos réponses

    La solution de Dut me permet de faire ce que j'ai besoin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. modifier la largeur des colonnes d'un MSFlexGrid
    Par isma92 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 02/06/2007, 19h33
  2. Modifier la largeur des scrollbars d'un TMemo
    Par Sub0 dans le forum Delphi
    Réponses: 26
    Dernier message: 09/09/2006, 14h34
  3. Réponses: 4
    Dernier message: 19/05/2006, 10h24
  4. [TDbGrid] Comment modifier la largeur des colonnes ?
    Par colorid dans le forum Composants VCL
    Réponses: 2
    Dernier message: 18/11/2005, 18h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo