Matplotlib: один график, построенный против двух связанных осей X в различных единицах?

У меня есть одна y переменная, которую я пытаюсь вывести на печать против двух связанных осей X, на вершине и нижней части числа (например, y = "количество вещей в кубе", x1 = "длина стороны куба", x2 = "объем куба"). У меня есть y, x1, x2 в массивах numpy. Отношения между моим x1 и x2 являются непосредственными и монотонными, но не простыми, и они увеличиваются в различных направлениях, как "длина стороны" и "обратный объем". Я попытался использовать twiny () и близнец (), но они, кажется, разработаны для графического изображения различных y переменных. Какие-либо идеи? Спасибо все!

Ниже пример вида вещи, кроме которой я пытаюсь сделать, с одной строкой, а не символами. Идея состоит в том, что, скажем, sigma=0.4 и M=2e15 являются эквивалентными и взаимозаменяемыми маркировками для одной точки.

сопроводительный текст http://img580.imageshack.us/img580/4554/screenshotuy.png

12
задан Kyle 29 June 2010 в 14:18
поделиться

1 ответ

Для разных x-шкал используйте twiny() (считайте это "общими осями y"). Пример, слегка адаптированный из документации matplotlib:

import numpy as np
import matplotlib.pyplot as plt

# plot f(x)=x for two different x ranges
x1 = np.linspace(0, 1, 50)
x2 = np.linspace(0, 2, 50)
fig = plt.figure()

ax1 = fig.add_subplot(111)
ax1.plot(x1, x1,'b--')

ax2 = ax1.twiny()
ax2.plot(x2, x2, 'go')

plt.show()

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

ax2.plot(x2, x2, alpha=0)
8
ответ дан 2 December 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: