2014-11-05 3 views
1

Я хочу построить график, который имеет значения по оси x = [151383,151433,175367,178368,183937] соответствующие значения оси y = [98,96,95,100,90]Изменение тиков оси x

Значения по оси X не являются регулярными интервалами. Но я хочу, чтобы ось х должна быть регулярной с интервалом. если я просто пишу

matplotlib.pyplot(y) 

то интервал регулярна и ось х приходит как [1,2,3,4,5] как я могу изменить, что фактические значения х-оси?

+0

Можете ли вы не просто построить график (x, y)? – Anzel

ответ

1

Я думаю, это то, что вы ищете:

>>> from matplotlib import pyplot as plt 
>>> xval=[151383,151433,175367,178368,183937] 
>>> y=[98, 96, 95, 100, 90] 
>>> x=range(len(xval)) 
>>> plt.xticks(x,xval) 
>>> plt.plot(x,y) 
>>> plt.show() 

enter image description here

+0

вы пропустили 'plot' – Anzel

+0

№ 151383 и 151433 находятся рядом, но остальные далеко ... я хочу, чтобы между каждым значением должно было быть одинаковое расстояние –

+0

, потому что, если по оси x изменится как = [151388,151390,151400,151899,181004], тогда первые 4 точки будут слишком близко и увидеть любую видимую разницу. на самом деле ось x - номер пробега, поэтому он должен находиться в равных пространствах. Я получаю те run-number (id), сгенерированные с какого-то другого сервера –

0

Просто график с (x, y) и осью x является фактическим значением с регулярными интервалами, если это то, что вы просите?

matplotlib.pyplot.plot(x, y) # with the plot by the way 
+0

№ 151383 и 151433 находятся рядом, но отдых далеко ... Я хочу, чтобы между каждым значением должно быть одинаковое расстояние. потому что, если x-ось изменяется как = [151388,151390,151400,151899,181004], то первые 4 точки будут слишком близки и видят любую видимую разницу. на самом деле ось x - номер пробега, поэтому он должен находиться в равных пространствах. Я получаю те run-number (id), сгенерированные с какого-то другого сервера –

+0

@AlankritaGupta, так что вам нужен видимый разрыв между точками с регулярными интервалами? – Anzel

+0

yes .. beacuse в будущем my x-value также может стать как [151388, 151389,151400,20003948,18479494] –

0

насчет делать что-то вроде этого? (Это пример Павла Иванова)

import matplotlib.pylab as plt 
import numpy as np 

# If you're not familiar with np.r_, don't worry too much about this. It's just 
# a series with points from 0 to 1 spaced at 0.1, and 9 to 10 with the same spacing. 
x = np.r_[0:1:0.1, 9:10:0.1] 
y = np.sin(x) 

fig,(ax,ax2) = plt.subplots(1, 2, sharey=True) 

# plot the same data on both axes 
ax.plot(x, y, 'bo') 
ax2.plot(x, y, 'bo') 

# zoom-in/limit the view to different portions of the data 
ax.set_xlim(0,1) # most of the data 
ax2.set_xlim(9,10) # outliers only 

# hide the spines between ax and ax2 
ax.spines['right'].set_visible(False) 
ax2.spines['left'].set_visible(False) 
ax.yaxis.tick_left() 
ax.tick_params(labeltop='off') # don't put tick labels at the top 
ax2.yaxis.tick_right() 

# Make the spacing between the two axes a bit smaller 
plt.subplots_adjust(wspace=0.15) 

plt.show() 
+0

№ 151383 и 151433 находятся рядом, но отдых далеко ... Я хочу, чтобы между каждым значением должно быть одинаковое расстояние. –

+0

Я обновил свое оригинальное сообщение, чтобы отразить то, что, как я считаю, вы хотите сделать. – eivl

+0

В результате получается 2 подзаголовка на диаграмме ... от (0,1) и второй от (9,10) ... разве это не psbl в одном сюжете? –

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