Eje de fecha en mapa de calor marino.

Un poco de información: soy muy nuevo en la progtwigción y esta es una pequeña parte de mi primer script. El objective de este segmento en particular es mostrar un mapa de calor marino con profundidad vertical en el eje y, tiempo en el eje x e intensidad de una medición científica como función de calor.

Me gustaría disculparme si esto ha sido respondido en otra parte, pero mis habilidades de búsqueda me han fallado.

sns.set() nametag = 'Well_4_all_depths_capf' Dp = D[D.well == 'well4'] print(Dp.date) heat = Dp.pivot("depth", "date", "capf") ### depth, date and capf are all columns of a pandas dataframe plt.title(nametag) sns.heatmap(heat, linewidths=.25) plt.savefig('%s%s.png' % (pathheatcapf, nametag), dpi = 600) 

Esto es lo que se imprime desde el ‘print (Dp.date)’, así que estoy bastante seguro de que el formato del dataframe está en el formato que quiero, particularmente Año, día, mes.

 0 2016-08-09 1 2016-08-09 2 2016-08-09 3 2016-08-09 4 2016-08-09 5 2016-08-09 6 2016-08-09 ... 

Pero, cuando lo ejecuto, el eje de fecha siempre se imprime con tiempos en blanco (00:00, etc.) que no quiero. ¿Hay alguna forma de eliminarlos del eje de fecha?

¿Es el problema que en una celda superior usé esta función para escanear el nombre del archivo y hacer una columna con la fecha? ¿Es incorrecto usar datetime en lugar de solo una función de fecha?

 D['date']=pd.to_datetime(['%s-%s-%s' %(f[0:4],f[4:6],f[6:8]) for f in D['filename']]) 

introduzca la descripción de la imagen aquí

Tienes que usar la función strftime para tu serie de datos de dataframe para trazar las tags xtick correctamente:

 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from datetime import datetime, timedelta import random dates = [datetime.today() - timedelta(days=x * random.getrandbits(1)) for x in xrange(25)] df = pd.DataFrame({'depth': [0.1,0.05, 0.01, 0.005, 0.001, 0.1, 0.05, 0.01, 0.005, 0.001, 0.1, 0.05, 0.01, 0.005, 0.001, 0.1, 0.05, 0.01, 0.005, 0.001, 0.1, 0.05, 0.01, 0.005, 0.001],\ 'date': dates,\ 'value': [-4.1808639999999997, -9.1753490000000006, -11.408113999999999, -10.50245, -8.0274750000000008, -0.72260200000000008, -6.9963940000000004, -10.536339999999999, -9.5440649999999998, -7.1964070000000007, -0.39225599999999999, -6.6216390000000001, -9.5518009999999993, -9.2924690000000005, -6.7605589999999998, -0.65214700000000003, -6.8852289999999989, -9.4557760000000002, -8.9364629999999998, -6.4736289999999999, -0.96481800000000006, -6.051482, -9.7846860000000007, -8.5710630000000005, -6.1461209999999999]}) pivot = df.pivot(index='depth', columns='date', values='value') sns.set() ax = sns.heatmap(pivot) ax.set_xticklabels(df['date'].dt.strftime('%d-%m-%Y')) plt.xticks(rotation=-90) plt.show() 

introduzca la descripción de la imagen aquí