Je trace trois sous-intrigues sur la même page. Je veux tracer une ligne horizontale à travers toutes les sous-parcelles. Voici mon code et le graphique résultant: (Vous pouvez remarquer que je peux obtenir la ligne horizontale sur l'un des tracés, mais pas tous)
gs1 = gridspec.GridSpec(8, 2)
gs1.update(left=0.12, right=.94, wspace=0.12)
ax1 = plt.subplot(gs1[0:2, :])
ax2 = plt.subplot(gs1[3:5, :], sharey=ax1)
ax3 = plt.subplot(gs1[6:8, :], sharey=ax1)
ax1.scatter(theta_cord, density, c = 'r', marker= '1')
ax2.scatter(phi_cord, density, c = 'r', marker= '1')
ax3.scatter(r_cord, density, c = 'r', marker= '1')
ax1.set_xlabel('Theta (radians)')
ax1.set_ylabel('Galaxy count')
ax2.set_xlabel('Phi (radians)')
ax2.set_ylabel('Galaxy count')
ax3.set_xlabel('Distance (Mpc)')
ax3.set_ylabel('Galaxy count')
plt.ylim((0,0.004))
loc = plticker.MultipleLocator(base=0.001)
ax1.yaxis.set_major_locator(loc)
plt.axhline(y=0.002, xmin=0, xmax=1, hold=None)
plt.show()
Cela génère les éléments suivants:
Encore une fois, je veux que la ligne que j'ai tracée sur le dernier sous-tracé apparaisse également sur les deux premiers sous-intrigues. Comment je fais ça?
J'ai trouvé un moyen de le faire pour toute personne qui trébuche de toute façon.
Nous devons remplacer la ligne suivante du PO:
plt.axhline(y=0.002, xmin=0, xmax=1, hold=None)
Nous le remplaçons par:
ax1.axhline(y=0.002,xmin=0,xmax=3,c="blue",linewidth=0.5,zorder=0)
ax2.axhline(y=0.002,xmin=0,xmax=3,c="blue",linewidth=0.5,zorder=0)
ax3.axhline(y=0.002,xmin=0,xmax=3,c="blue",linewidth=0.5,zorder=0)
Cela produit:
Puisque vous avez défini ax1
, ax2
et ax3
, il est facile de tracer des lignes horizontales dessus. Vous devez le faire séparément pour eux. Mais votre code pourrait être simplifié:
for ax in [ax1, ax2, ax3]:
ax.axhline(y=0.002, c="blue",linewidth=0.5,zorder=0)
Selon documentation axhline , xmin
et xmax
devraient être dans la plage (0,1). Il n'y a aucune chance que xmax=3.0
. Étant donné que votre intention est de tracer une ligne horizontale sur les axes (qui est le comportement par défaut de la méthode axhline
), vous pouvez simplement omettre les paramètres xmin
et xmax
.