/ / Matplotlib Парцели стават не-квадратни, когато добавяте Colorbar - matplotlib, colorbar

Plots на Matplotlib стават нечетливи при добавяне на Colorbar - matplotlib, colorbar

Това е доста конкретна молба, но аз бяхчудя се дали някой има решение на този конкретен проблем. Когато сюжетът включва цветна лента, изглежда, че 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 в цветната лента?