2015-12-04 2 views
0

Есть ли быстрый способ масштабирования оси в matplotlib?Matplotlib: ось масштабирования умножается на константу

Скажем, я хочу, чтобы построить

import matplotlib.pyplot as plt 
c= [10,20 ,30 , 40] 
plt.plot(c) 

он будет строить enter image description here

Как можно масштабировать ось х быстро, скажем, умножая каждое значение с 5? Одним из способов является создание массива для оси х:

x = [i*5 for i in range(len(c))] 
plt.plot(x,c) 

enter image description here

Я интересно, если есть более короткий путь, чтобы сделать это, не создавая список для оси х, что-то вроде plt.plot (индекс (с) * 5, с)

+0

Если вы хотите изменить только ось, но не данные, вы можете установить пределы оси. Но в приведенном выше примере вы изменяете фактические данные, поэтому ваш вопрос о масштабировании оси не имеет смысла. – Evert

+0

@ Неправильно, это довольно распространенный способ делать что-то в ggplot, http://stackoverflow.com/questions/11470579/transforming-axis-labels-with-a-multiplier-ggplot2 –

+0

Это не R. You ' изменив данные, просто взгляните на две фигуры. – Evert

ответ

0

Используйте numpy.array вместо списка,

c = np.array([10, 20, 30 ,40]) # or `c = np.arange(10, 50, 10)` 
plt.plot(c) 
x = 5*np.arange(c.size) # same as `5*np.arange(len(c))` 

Это дает:

>>> print x 
array([ 0, 5, 10, 15]) 
Смежные вопросы