I want my y-axis tick labels to be green when tick values are positive and red when tick values are negative.
Consider the following series and plot
You can accomplish this by using using the ax.get_yticklabels() and ax.get_yticks() methods of an axis...
import numpy as np
import pylab as plt
import pandas as pd
# figure data
np.random.seed([3,1415])
# create the plot
ax = plt.figure().gca()
ax.plot(pd.Series(np.random.randn(100)).add(.1).cumsum())
# change the y-axis label colors based on positive/negative
a = [ax.get_yticklabels()[i].set_color('red') if (ax.get_yticks()[i] < 0 ) else ax.get_yticklabels()[i].set_color('green') if ( ax.get_yticks()[i] > 0 ) else ax.get_yticklabels()[i].set_color('black') for i in range(len(ax.get_yticklabels()))]
The above uses the list comprehension [a if A else b if B else c for list].