2014-01-21 4 views
0

Как бы вы добавили границу между осевыми линиями и фактическим происхождением? В 3D-разбросе, например, one, происхождение x = 6 и y = -10 не находится в одной точке. Как сделать то же самое, но в 2D-разбросе (что-то похожее на графику на стр. 122 (132 из pdf) в этом matplotlib doc, где исходные x = 0 и y = 0 не расположены в одном и том же месте).Добавить маржу в 2D диаграмме рассеяния

ответ

2

Маржа может быть легко добавлена ​​к любому участка путем подачи plt.set_xmargin(m) с плавающей точкой между 0 и 1, что указывает на относительный размер края:

import matplotlib.pyplot as plt 
import numpy as np 

fig =plt.figure() 
ax = plt.subplot(111) 

x = np.linspace(0, 10, 100) 
y = np.cos(x) 

ax.set_xmargin(0.2) 
ax.set_ymargin(0.2) 

ax.plot(x, y) 

enter image description here

Примечание на практике это должно вызывается до ax.plot(.., так как это происходит, когда выполняется автомасштабирование. Для получения дополнительной информации see here

+0

Предположим, вы установили лимиты 'y' на' [0,2] ', как бы у вас было начало' (0,0) 'at' (1,1) '(' (1,1) 'в вашем рисунке соответствует точке' (0, -1) ') в этом случае? 'set_xmargin' и' set_ymargin', похоже, не делают этого. –

+0

Это совсем другой вопрос, но спасибо за дополнительную информацию. Вы можете добиться этого, сдвинув ось. Я отредактирую свой ответ. – Greg

+0

Извините, вы можете мне что-то прояснить - что именно вы подразумеваете по происхождению? Точка '0,0' всегда является источником независимо от пределов. В приведенных примерах различная ось просто имела разные пределы или имела маржу. Вы имеете в виду, что на самом деле сдвинуть начало координат так, чтобы точка, которая была в (0,0), теперь равна (1,1)? – Greg

Смежные вопросы