Sometimes you have to show positive, zero and negative number in log scale. However you cannot take log of negative numbers and zero. But one could approximate it with a log transform modulus as stated here.
In Python with numpy:
import matplotlib.pyplot as plt
# Data varies in several magnitudes and has both positive, zero and negative numbers
x = [-10000,-1000,-100,-10,0,10,100,1000,10000]
# log modulus transform
f, ax = plt.subplots(2, sharex=True)