2014-12-15 4 views
4

Я пытаюсь установить тики (временные шаги) оси x на моем графике matplotlib в Pandas DataFrame. Моя цель - использовать первый столбец DataFrame для использования в качестве тиков, но до сих пор я не был успешным.Установите интервалы оси x (для галочки) для графика Pandas DataFrame

Мои попытки до сих пор включали:

Попытка 1:

#See 'xticks' 
data_df[header_names[1]].plot(ax=ax, title="Roehrig Shock Data", style="-o", legend=True, xticks=data_df[header_names[0]]) 

Попытка 2:

ax.xaxis.set_ticks(data_df[header_names[0]]) 

header_names это просто список имен заголовков столбцов и dataframe является, как следует:

Compression Velocity Compression Force 
1    0.000213   6.810879    
2    0.025055   140.693200    
3    0.050146   158.401500    
4    0.075816   171.050200    
5    0.101011   178.639500    
6    0.126681   186.228800    
7    0.150925   191.288300    
8    0.176597   198.877500   
9    0.202269   203.937000   
10    0.227466   208.996500   
11    0.252663   214.056000  
44 +44516410617451515053691368888

А вот данные в формате CSV:

Compression Velocity,Compression Force 
0.0002126891606,6.810879 
0.025055073079999997,140.6932 
0.050145696,158.4015 
0.07581600279999999,171.0502 
0.1010109232,178.6395 
0.12668120459999999,186.2288 
0.1509253776,191.2883 
0.1765969798,198.8775 
0.2022691662,203.937 
0.2274659662,208.9965 
0.2526627408,214.056 

А вот реализация чтения и построения графика:

data_df = pd.read_csv(file).astype(float) 
fig = Figure() 
ax = fig.add_subplot(111) 
ax.set_xlabel("Velocity (m/sec)") 
ax.set_ylabel("Force (N)") 
data_df[header_names[1]].plot(ax=ax, title="Roehrig Shock Data", style="-o", legend=True) 

Текущий график выглядит так:

ось x в настоящее время представляет собой количество строк в фрейме данных (например, 12), а не фактические значения в первом столбце.

Есть ли способ использовать данные из первого столбца в dataframe для установки в качестве тиков/интервалов/шагов времени оси x?

+0

Пробовали ли вы 'df.plot (х = 'Column_you_want_as_x', у = 'Column_you_want_as_y', xticks = d [ 'Column_you_want_as_x'])' ? – BrenBarn

+0

Я не пробовал передавать все 3 в качестве параметров одновременно, но, к сожалению, это тоже не сработало. Спасибо за предложение. –

+0

Он работает для меня, но я не знаю, установлены ли мои данные по-другому, потому что вы не предоставляете данные образца. Можете ли вы предоставить самодостаточный примерный код и примеры данных, демонстрирующих проблему? – BrenBarn

ответ

8

Это работает для меня:

data_df.plot(x='Compression Velocity', y='Compression Force', xticks=d['Compression Velocity']) 

enter image description here

+0

Игнорировать предыдущий комментарий. Мне пришлось использовать data_df [header_names [1: 2]]. Plot (...) для достижения желаемого результата. Большое спасибо за Вашу помощь! –

+0

Я просто попробовал это, добавив еще один столбец в DataFrame, и он все еще работает. Обратите внимание, что я передаю * аргументы x и y * в 'plot', чтобы указать, какие столбцы для построения. – BrenBarn

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