J'essaie d'étiquettes de coques sur mesure sur une liste ListeLogLogPlot. En recherchant des archives mathgroup, on dirait que la façon habituelle de gâcher avec les étiquettes de tiques est de les extraire à l'aide de AbsoluteOptions code>, exécutez une règle de remplacement avec le format personnalisé, puis de les nourrir explicitement à la fonction de traçage avec le
ticks -> {...} code> option. Cependant, ce qui suit ne fonctionne pas pour LISCHOGLOGPLOT:
foo = ListLogLogPlot[Range[20]^3, Frame -> True];
ticks=(FrameTicks /. AbsoluteOptions[foo, FrameTicks])
5 Réponses :
ressemble à un bug pour moi. Calling simple absoluteoptions [FOO] code> donne des messages d'erreur. OLDES
uni [FOO] CODE> fonctionne bien, cependant. P>
On peut utiliser des remplacements pour désordre directement avec les étiquettes, contourner l'option merci à Alexey Popkov Ceci est maintenant amélioré et moins fragile. P> p>
/
absoluoptions code>:
p>
Très élégant! +1. Mais il faut utiliser cela avec précaution car cette astuce repose sur le comportement dépendant de la version de listlogLogPlot code>.
Je pense que ce code peut être fait beaucoup plus général et moins dépendante de la version juste en remplaçant {a_? Numericq, b_integer} code> par
{a_? Numericq, b_integer, s ___} code> et
{A, Superscript [10, log10 @ b]} code> par
{A, Superscript [10, log10 @ b], S} code>.
@Alexey, veuillez éditer ma réponse avec cela, votre nom apparaît également sur la réponse. Essayez de garder le formatage, s'il vous plaît.
J'ai fait la modification mais je n'ai pas assez de privilèges et que le changement doit être examiné. Je ne sais pas qui devrait l'examiner quand il sera fait.
@Alexey, je comprends. N'essayez pas de faire une deuxième modification, car cela semble causer à la fois être rejeté. Si vous actualisez cette page et que vous voyez la bannière «Cette édition n'est que visible pour vous» n'est plus là, une personne a rejeté votre édition. Si cela se produit, faites le moi savoir et je vais faire le changement moi-même, mais je préfère que vous obteniez un crédit pour votre propre édition!
Maintenant, la bannière "Cette édition n'est visible que" ne plus là. Je suis surpris!
@Alexey Malheureusement, l'Edit-Reviewer ne savait pas ce que nous voulions. Je vais faire l'édition moi-même. La seule solution est pour moi de vérifier vos questions pour atteindre 2000 représentant bientôt. :-)
@Wizard: Les réponses susceptibles de l'obtiennent là-bas plus vite :)
@yoda, vrai, mais il est plus cher que d'un répondeur, et ce n'est pas une mauvaise chose, ce sont des questions difficiles!
@ M.Wizard, je pense que vous auriez pu approuver la modification en sélectionnant le lien d'édition. Je ne l'ai rencontré qu'une seule fois, alors je ne me souviens pas quand il se produisait. Et, puisque vous avez un représentant plus élevé que moi, vous devriez avoir les mêmes privilèges. (BTW, aime le nom.)
@RCollyer Je vais chercher cela à l'avenir. (Merci. Don Herbert était super.)
Envoyer un email avec ce code dans celui-ci pour supporter@wolfram.com. Ils pourront vous dire s'il y a une meilleure solution de contournement connue. P>
Comme Sjoerd, je préfère généralement écrire une fonction qui calcule les tiques de la volée:
PowerTicks[label_][min_, max_] := Block[{min10, max10}, min10 = Floor[Log10[min]]; max10 = Ceiling[Log10[max]]; Join[Table[{10^i, If[label, Superscript[10, i], Spacer[{0, 0}]]}, {i, min10, max10}], Flatten[ Table[{k 10^i, Spacer[{0, 0}], {0.005, 0.`}, {Thickness[0.001`]}}, {i, min10, max10}, {k, 9}], 1]] ] ListLogLogPlot[Range[20]^3, Frame -> True, FrameTicks -> {{PowerTicks[True], PowerTicks[False]}, {PowerTicks[True], PowerTicks[False]}}]
Pour compléter Brett's Réponse , Regardez le package donne p> Pour une liste de données, vous devez évidemment utiliser si le patch est accepté l'ancienne forme de et il le formate automatiquement comme vous le souhaitez. p> EDIT STRY>: i "D Aimez aussi souligner que CustomTicks CODE> dans Niveauxcheme . Il fournit deux fonctions pour générer des marques de ticks 'Linticks
et CODE> LOGTICKS`, et chacune dispose d'une multitude d'options de formatage. Actuellement, cela vous oblige à effectuer le logarithme vous-même, c'est-à-dire
P>
log [base, données] code> avec
ListPlot code>, mais il est fonctionnel. J'ai soumis un correctif à Mark Caprio afin que ce qui suivit ferait exactement la même chose que ci-dessus p>
Logticks Code> serait accessible en définissant l'option
tracétype code> à
linéaire code>,
logarithmic code> est par défaut. L'avantage de l'utilisation
CustomTicks code> est que d'autres bases sont faciles p>
p>
CustomTicks CODE> est chargé de lui-même, séparé du reste de
Niveauxcheme code>. Et, comme il s'agit d'un petit paquet, il n'ya pas tout au long de la tête supplémentaire. P> p>
@Simon, pour le moment, le seul problème est que vous devez exécuter vous-même les logarithmes. Mais, avec chance, ce ne sera pas comme ça depuis longtemps.
J'ai résisté à l'apprentissage Niveauxcheme code> pendant des années. La bonne expérience d'aujourd'hui avec
CustomTicks code> pourrait enfin changer cela. Merci.
@Argentosapiens, NiveauxCheme Code> Prend habituellement, mais
CustomTicks CODE> est un utilitaire génial.
Ouais, je l'ai fait ici: forums.wolfram.com/mathgroup/archive /2009/apr/msg00757.html et ici: Forums .wolfram.com / mathgroup / archive / 2009 / APR / msg00762.html , et par pure contrefidement il y a quelques heures dans cette question: Stackoverflow.com/questions/5664937/adaptive-gridlines/.../a>
@Sjoerd pourquoi n'est-ce pas une réponse, je peux donc voter pour cela?
@ M.Wizard Eh bien, comme je le vois, ce n'est pas une réponse à la question de Léo, qui portait sur l'erreur dans ListeLogLogPlot spécifiquement. BTW: Je viens de mettre à jour ma réponse référencée ci-dessus pour inclure une nouvelle entrée de Belisarius. Le nouveau code est moins un piratage, mais non adapté aux baldaquin autant que je puisse voir. Vous devez toujours utiliser l'ancienne méthode pour cela. Une autre chose: j'aimerais attirer votre attention sur l'avertissement plutôt sans rapport inférieur à ma mise à jour finale. Je ne sais pas comment le faire mais je pense que cet avertissement doit être connu plus largement.
@Sjoerd j'ai pris "toutes idées sur la façon de traiter cela?" ouvrir la question à des solutions alternatives. Je vais devoir voir si je peux faire quelque chose à propos de votre avertissement, ça a l'air laid.