Is it possible to add x-axis labels to *every* plot in the Seaborn Factor Plot (Python)?
<p>I'm using Seaborn to make a Factor Plot.  </p>

<p>In total, I have 4 'sub plots' (and use <code>col_wrap =2</code>, so I have 2 rows, each containing 2 sub plots).  Only the 2 sub plots at the very bottom of the grid have x-axis labels (which I believe is the default).  </p>

<p>Is it possible to configure the Factor Plot such that each of the 4 plots has x-axis labels? (I couldn't find this option in the Documentation or on StackOverflow)</p>

<p><strong>UPDATE</strong>:</p>

<p>Here is the code (which generates 4 time series plots on a Factor Grid):</p>

<p>The dataframe (df) looks as follows: </p>

<pre><code>Company     Date        Value
ABC         08/21/16    500
ABC         08/22/16    600
ABC         08/23/16    650
DEF         08/21/16    625
DEF         08/22/16    675
DEF         08/23/16    680
GHI         08/21/16    500
GHI         08/22/16    600
GHI         08/23/16    650
JKL         08/21/16    625
JKL         08/22/16    675
JKL         08/23/16    680


import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns 

df = pd.read_csv(the_file_name.csv)

g = sns.factorplot(data=df,
                   x='Date',
                   y='Value',
                   col='Company',
                   col_wrap=2,
                   sharey=False)
g.set_xlabels('')
g.set_ylabels('product count')
g.set_xticklabels(rotation=45)
plt.show()
</code></pre>

<p>You'll notice that the x-axis dates are shown on the bottom 2 plots.  I'd like for the x-axis dates to be shown on the top 2 plots as well.</p>

<p>Thanks!</p>

<p>I'm not sure of a way to do this in <code>seaborn</code>, but you can play with the matplotlib <code>Axes</code> instances to do this. </p>

<p>For example, here we'll use <a href="http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.setp" rel="nofollow"><code>setp</code></a> to set the <code>xticklabels</code> to visible for all axes in the <code>FacetGrid</code> (<code>g</code>). Note that I also set the rotation here too, since seaborn would not rotate the <code>ticklabels</code> on the upper row. </p>

<p>Finally, I have increased the space between subplots to allow room for the tick labels using <a href="http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.subplots_adjust" rel="nofollow"><code>subplots_adjust</code></a>.</p>

<pre><code>import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns 
from io import StringIO

the_file_name = StringIO(u"""
Company,Date,Value
ABC,08/21/16,500
ABC,08/22/16,600
ABC,08/23/16,650
DEF,08/21/16,625
DEF,08/22/16,675
DEF,08/23/16,680
GHI,08/21/16,500
GHI,08/22/16,600
GHI,08/23/16,650
JKL,08/21/16,625
JKL,08/22/16,675
JKL,08/23/16,680
""")

df = pd.read_csv(the_file_name)

g = sns.factorplot(data=df,
                   x='Date',
                   y='Value',
                   col='Company',
                   col_wrap=2,
                   sharey=False)
g.set_xlabels('')
g.set_ylabels('product count')

for ax in g.axes:
    plt.setp(ax.get_xticklabels(), visible=True, rotation=45)

plt.subplots_adjust(hspace=0.3)

plt.show()
</code></pre>

<p><a href="http://i.stack.imgur.com/2w69T.png" rel="nofollow"><img src="http://i.stack.imgur.com/2w69T.png" alt="enter image description here"></a></p>

python matplotlib seaborn