Как я могу добавить вторичную ось «y» и «x» в этот контур?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу добавить вторичную ось «y» и «x» в этот контур?

Сообщение Anonymous »

Я пытался настроить вторичные оси «y» и «x» на заполненном контурном графике, используя matplotlib . Моя цель состоит в том, чтобы иметь дополнительную ось «x» и «y», так что оба являются функцией значений их основных осей. Чтобы заставить его работать, я играл с Secondary_yaxis и Secondary_xaxis . Я запутался, как эти функции действительно работают. Фактические функции и данные разные, но вот код, с которым я играл, чтобы понять, что происходит: < /p>

Код: Выделить всё

import matplotlib.pyplot as plt
import numpy as np

# the function that I'm going to plot
def z_func(x, y):
return (1 - (x ** 2 + y ** 3)) * np.exp(-(x ** 2 + y ** 2) / 2)

yMax = 2.5
yMin = 1
xMax = yMax
xMin = yMin

x = np.arange(yMin, yMax, 0.01)
y = np.arange(xMin, xMax, 0.01)
X, Y = np.meshgrid(x, y)  # grid of point
Z = z_func(X, Y)  # evaluation of the function on the grid

fig,ax = plt.subplots()

ctr = ax.contourf( X,Y, Z)

xticks=np.linspace(xMin,xMax,9)
xtickLabels = [fr'{i:.1f}' for i in xticks]
ax.set_xticks(ticks=xticks, labels=xtickLabels)
ax.set_xlabel('x')

yticks = np.linspace( yMin,yMax, 9)
ytickLabels = [fr'{i:.1f}' for i in yticks]
ax.set_yticks(ticks=yticks, labels=ytickLabels)
ax.set_ylabel('y')

cbar = fig.colorbar(ctr, ax=ax, location='right')
cbar.ax.set_ylabel(r'$z=f(x,y)$')

Y = yticks**2

fig.subplots_adjust(left=0.20)
def y_forward(y):
return  1/y
# def forward(y):
#     return 1/y
# def inverse(y):
#     return y

secay=ax.secondary_yaxis('left', functions=(y_forward,y_forward))
secay.spines['left'].set_position(('outward', 40))
secay.set_ylabel(r'Y=1/y')
secay.yaxis.set_inverted(True)

fig.subplots_adjust(bottom=0.27)
def x_forward(x):
return 3*x
secax=ax.secondary_xaxis('bottom', functions=(x_forward,x_forward))
secax.spines['bottom'].set_position(('outward', 30))
secax.set_xlabel(r'X=3$\times$ x')

ax.grid(visible=False)

ax.set_title(r'$z=(1-x^2+y^3) e^{-(x^2+y^2)/2}$')
fig.tight_layout()
plt.show()
Я думаю, что вторичный_иксис и второй_XAXIS генерирует свои собственные масштабы, основанные на функциях преобразования. Я бы хотел, чтобы каждый тик на вторичных осях был линейно распределенным. Например, если первичная ось Y имеет 9 значений клещей, я хочу, чтобы вторичная ось Y также имела 9 значений клещей, каждая из которых вычисляется по пользовательской функции, применяемой к основным значениям оси Y. Кроме того, я хочу, чтобы эти клещи и значения были должным образом выровнены, так что значения вторичной оси можно легко идентифицировать с соответствующими значениями на первичной оси. Можно ли сделать что -то подобное с помощью функций Secondary_yaxis и secondary_xaxis ? Возможно, Twinx и Twiny были бы полезны?

Подробнее здесь: https://stackoverflow.com/questions/797 ... is-contour
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как я могу добавить вторичную ось «y» и «x» в этот контур?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • OpenCV CV2.DrawContours Контур Аргумент: контур против [контур]
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как я могу нарисовать еще одну вторичную ось Y на диаграмме так же, как Парето?
    Anonymous » » в форуме Php
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Как иметь вторичную ось в логатике вместе с линейной в Боке?
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как я могу нарисовать еще одну вторичную ось Y на таблицу, так же, как Парето
    Anonymous » » в форуме Php
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»