Matplotlib afin que l'axe de la bille n'ait que des marques de graduation mineures aux points spécifiés. Modifier également la taille des étiquettes de graduation dans la barre de couleurs

Je suis en train de créer une parcelle, mais je veux juste le ticklabels pour montrer comme le montre où le journal échelle est indiquée comme ci-dessus. Je veux seulement le mineur ticklabel de 50, 500 et 2000 pour le spectacle. Est-il de toute façon à spécifier le mineur étiquettes de graduation pour montrer?? J'ai essayé de trouver cela un peu mais n'ai pas trouvé une bonne solution. Tout ce que je peux penser est d'obtenir le minorticklabels() et régler la taille de la police à 0. Ceci est illustré ci-dessous le premier extrait de code. J'espérais qu'il y a plus de solution propre.

L'autre chose est en train de changer la taille de la ticklabels dans la barre de couleur que je n'ai pas compris. Si quelqu'un connaît un moyen de faire cela s'il vous plaît laissez-moi savoir parce que je ne vois pas une méthode dans la barre de couleur qui facilement fait cette.

Premier code:

fig = figure(figto)
ax = fig.add_subplot(111)
actShape = activationTrace.shape
semitones = arange(actShape[1])
freqArray = arange(actShape[0])
X,Y = meshgrid(self.testFreqArray,self.testFreqArray)
Z = sum(activationTrace[:,:,beg:end],axis=2)
surf = ax.contourf(X,Y,Z, 8, cmap=cm.jet)
ax.set_position([0.12,0.15,.8,.8])
ax.set_ylabel('Log Frequency (Hz)')
ax.set_xlabel('Log Frequency (Hz)')
ax.set_xscale('log')
ax.set_yscale('log')
ax.xaxis.set_minor_formatter(FormatStrFormatter('%d'))
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
ax.tick_params(axis='both',reset=False,which='both',length=8,width=2)
self.plotSetAxisLabels(ax,22)
self.plotSetAxisTickLabels(ax,18)
cbar = fig.colorbar(surf, shrink=0.5, aspect=20, fraction=.12,pad=.02)
cbar.set_label('Activation',size=18)
return ax, cbar

Matplotlib afin que l'axe de la bille n'ait que des marques de graduation mineures aux points spécifiés. Modifier également la taille des étiquettes de graduation dans la barre de couleurs

Deuxième Code:

fig = figure(figto)
ax = fig.add_subplot(111)
actShape = activationTrace.shape
semitones = arange(actShape[1])
freqArray = arange(actShape[0])
X,Y = meshgrid(self.testFreqArray,self.testFreqArray)
Z = sum(activationTrace[:,:,beg:end],axis=2)
surf = ax.contourf(X,Y,Z, 8, cmap=cm.jet)
ax.set_position([0.12,0.15,.8,.8])
ax.set_ylabel('Log Frequency (Hz)')
ax.set_xlabel('Log Frequency (Hz)')
ax.set_xscale('log')
ax.set_yscale('log')
ax.xaxis.set_minor_formatter(FormatStrFormatter('%d'))
ax.yaxis.set_minor_formatter(FormatStrFormatter('%d'))
ax.yaxis.set_ticks_position('left')
ax.xaxis.set_ticks_position('bottom')
ax.tick_params(axis='both',reset=False,which='both',length=8,width=2)
self.plotSetAxisLabels(ax,22)
self.plotSetAxisTickLabels(ax,18)
cbar = fig.colorbar(surf, shrink=0.5, aspect=20, fraction=.12,pad=.02)
cbar.set_label('Activation',size=18)
count = 0
for i in ax.xaxis.get_minorticklabels():
if (count%4 == 0):
i.set_fontsize(12)
else:
i.set_fontsize(0)
count+=1
for i in ax.yaxis.get_minorticklabels():
if (count%4 == 0):
i.set_fontsize(12)
else:
i.set_fontsize(0)
count+=1
return ax, cbar

Matplotlib afin que l'axe de la bille n'ait que des marques de graduation mineures aux points spécifiés. Modifier également la taille des étiquettes de graduation dans la barre de couleurs

Pour la barre de couleur:
Une autre petite question si vous n'avez pas l'esprit, car en essayant de comprendre, mais pas tout à fait sûr. Je veux utiliser la notation scientifique qui je peux avoir avec ScalarFormatter. Comment puis-je choisir le nombre de décimales et le multiplicateur?? J'aimerais qu'il soit comme 8x10^8 ou .8x10^9 pour économiser de l'espace au lieu de mettre tous ces zéros. Je figure, il y a plusieurs façons de faire cela à l'intérieur de la axes de l'objet, mais ce que tu vois est le meilleur moyen. Je peux pas comprendre comment le changement de la notation lors de la modification de la ScalarFormatter.

Pour le graphique:
Aussi, mes données ont des points de départ à 46 et ensuite dans les multiplie les de cette multiplié par 2^(1/12) de sorte 46,49,50,55,58,61...3132. Ce sont tous arrondis mais qui se situent à proximité de la 2^(1/12). J'ai décidé que le mieux place d'importantes tickers proche de ces chiffres. Est la meilleure façon d'utiliser le fixe formateur et l'utilisation d'un ticker toutes les 15 ou alors dans la freqArray. Puis utiliser un mineur ticker à tous les autres fréquences. Puis-je le faire et à toujours maintenir un journal de l'axe??

source d'informationauteur J Spen