Това е доста конкретна молба, но аз бяхчудя се дали някой има решение на този конкретен проблем. Когато сюжетът включва цветна лента, изглежда, че Matplotlib се опитва да изтласка както цветната лента, така и самия сюжет в квадратно ограничаващо поле. Има ли начин да оставите самия сюжет точно на размерите, които искате (в идеалния случай съотношение 1), докато все още имате цветна лента? Има ли умен начин да направите това, така че да не се налага да гадаете и проверявате?
Кодът е по-долу:
plt.figure(figsize=(8,8))
props = dict(boxstyle="round", facecolor="#C0C0C0", alpha=1)
plt.hexbin(p_binned[7],q_binned[7],extent=(0,1,0,1),gridsize=50,cmap="bone")
plt.colorbar()
text_content = "{:1.3f} ".format(bins[7]/r200_MediumMass2)
plt.text(0.05, 0.95, text_content + r"$r/r_{200}$", fontsize=16, verticalalignment="top", bbox=props)
plt.xlabel("p")
plt.ylabel("q",rotation="horizontal")
plt.ylim(0,1)
plt.xlim(0,1)
plt.show()
Благодаря!
Отговори:
3 за отговор № 1Можете да принудите съотношението на осите на осите да бъде едно
ax.set_aspect("equal")
и преоразмерете фигурата до каквото и да е измерение (в инчове), което искате
fig.set_size_inches([height, width],forward=True)
Можеш да използваш
art.get_window_extent()
за да получите размера на всеки изпълнител в дисплейните единици, можете да го използвате за програмно пренастройване на нещата.
Как иначе трябва да се добави mpl в цветната лента?