Добавить вторичную ось X на основе pd.Series из строк - PullRequest
0 голосов
/ 05 октября 2019

У меня есть pandas df, который выглядит так:

|---------------------|------------------|-----------|
|      timestamp      |     clocktime    |   value   |
|---------------------|------------------|-----------|
|          1          |       8:30       |    10     |
|---------------------|------------------|-----------|
|          2          |       8:31       |    20     |
|---------------------|------------------|-----------|
|          3          |       8:33       |    15     |
|---------------------|------------------|-----------|

, и мне удалось построить его с помощью timestamp на оси x и value на оси y. Есть ли способ создать вторичную ось х с clocktime в качестве ее значений? Проблема в том, что у меня более 100 тыс. Строк, поэтому я не могу напечатать каждую запись clocktime (каждая запись clocktime является строкой). Есть ли способ отобразить как timestamp, так и clocktime как две отдельные оси X на одном графике с некоторым интеллектуальным интервалом между тиками? Я использую matplotlib и строю его, используя объект Axes.axes.

1 Ответ

0 голосов
/ 05 октября 2019

Я не уверен, что означает «интеллектуальный интервал между тиками», но вы можете сделать следующее.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
b=pd.DataFrame({"timestamp":[1,2,3],"clocktime": ["8:30","8:31","8:33"],"value":[10,20,15]})
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twiny()
ax1.plot(b["clocktime"], b["value"])
ax2.plot(b["timestamp"], b["value"]) 
plt.xticks(np.arange(min(b["timestamp"]),max(b["timestamp"])+1, 1.0))
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...