2015-01-24 3 views
1

В Gnuplot я могу это сделать, чтобы получить квадратный участок:Как сделать квадрат квадрата рассеяния matplotlib?

set size square 

Что такое эквивалент в Matplotlib? Я пробовал:

import matplotlib 
matplotlib.use('Agg') 
import matplotlib.pyplot as plt 
plt.rcParams['backend'] = 'TkAgg' 
x = [0, 0.2, 0.4, 0.6, 0.8] 
y = [0, 0.5, 1, 1.5, 2.0] 
colors = ['k']*len(x) 
plt.scatter(x, y, c=colors, alpha=0.5) 
plt.axes().set_aspect('equal', adjustable='datalim') 
plt.xlim((0,2)) 
plt.ylim((0,2)) 
plt.grid(b=True, which='major', color='k', linestyle='--') 
plt.savefig('{}.png'.format(rsID), dpi=600) 
plt.close() 
plt.clf() 

Я получаю квадратную сетку, но сам сюжет не квадратный. Как сделать диапазон x от 0 до 2 и сделать квадрат сюжета? enter image description here

ответ

1

Вы можете сделать это следующим образом:

import matplotlib.pyplot as plt 

fig, ax = plt.subplots() 
x = [0, 0.2, 0.4, 0.6, 0.8] 
y = [0, 0.5, 1, 1.5, 2.0] 
colors = ['k']*len(x) 
ax.scatter(x, y, c=colors, alpha=0.5) 
ax.set_xlim((0,2)) 
ax.set_ylim((0,2)) 
x0,x1 = ax.get_xlim() 
y0,y1 = ax.get_ylim() 
ax.set_aspect(abs(x1-x0)/abs(y1-y0)) 
ax.grid(b=True, which='major', color='k', linestyle='--') 
fig.savefig('test.png', dpi=600) 
plt.close(fig) 

enter image description here

3

Установить размер на рисунке:

import matplotlib 
matplotlib.use('Agg') 
import matplotlib.pyplot as plt 
plt.rcParams['backend'] = 'TkAgg' 
x = [0, 0.2, 0.4, 0.6, 0.8] 
y = [0, 0.5, 1, 1.5, 2.0] 
colors = ['k']*len(x) 
fig = plt.figure(figsize=(6,6)) # default is (8,6) 
ax = fig.add_subplot(111, aspect='equal') 
ax.scatter(x, y, c=colors, alpha=0.5) 
ax.set_xlim((0,2)) 
ax.set_ylim((0,2)) 
ax.grid(b=True, which='major', color='k', linestyle='--') 
+1

ли человек, который понижающего проголосовал уход ответ, чтобы объяснить Зачем? – Ben

+2

Это был не я, но я думаю, что вы сделали только размер холста равным, он не устанавливает фактическую площадь области как квадратную. Его можно перепутать с помощью меток оси и тика и т. Д., Потому что matplotlib сжимает область сюжета, чтобы соответствовать этим вещам на холсте. –

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