在x轴Pandas Matplotlib中操纵日期

时间:2017-03-10 21:16:28

标签: python pandas datetime matplotlib

我有一组非常简单的数据,如下所示。我正在寻找一种方法来绘制这个堆积的条形图并格式化x轴(日期),使其从1996年3月12日开始,到2016年3月12日结束,增量为365天。我写的代码是绘制每个日期,因此x轴非常聚集而且不可读。

  var radioValues = msg.options;
  var cn = gotoReport()
   .then(clickReport)
   .then(clickReportFake)
   .then(clickNext);

   for (var i = 0; i < radioValues.length; i++){
       cn = cn.then(clickOption(radioValues[i])).then(clickNext);
   }
   cn.then(clickSendToFacebook).then(clickFinish);  


//all called functions look like that 
  function clickNext(){
        return process(function(){
            console.log("clickNext");
            var next = $('button:contains("Weiter")');
             $(next).click();
        },3000);
    }   

function process(action, ms) {
      var deferred = $.Deferred();

      timer = setInterval(function() {
        deferred.notify();
      }, 1000);

      setTimeout(function() {
         clearInterval(timer);
         action();
         deferred.resolve();
      }, ms);

//    return deferred;    
      return deferred.promise();
    }


function sleep(ms)
{
    return(new Promise(function(resolve, reject) {        
        setTimeout(function() { resolve(); }, ms);        
    }));    
}

1 个答案:

答案 0 :(得分:2)

这是一个类似的问题:Pandas timeseries plot setting x-axis major and minor ticks and labels

您可以使用matplotlib本身而不是pandas来管理它。

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# if your dates are strings you need this step
df.Date = pd.to_datetime(df.Date)

fig,ax = plt.subplots()
ax.plot_date(df.Date,df.A)
ax.plot_date(df.Date,df.B)
ax.xaxis.set_major_locator(mdates.YearLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%b\n%Y'))
plt.show()