Axes3D Data Labels and Plot Limits

The following is a small snippet illustrating the problem with the cube size used in an Axes3D instance from matplotlib and trimming axis labels. Although I can easily change the background color on the figure, it still leads to distortion of the text located on the labels. Does anyone have an idea of ​​how best to resize the actual size of the 3D window used to build the data? Just resizing the subtitle doesn't seem to help. This best illustrates code execution. After plotting, the date-formatted text changes in color, and one end becomes a little darker. Any help is appreciated.

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.dates as dates
import datetime, random
import matplotlib.ticker as ticker

def random_date():
      date = datetime.date(2008, 12,01)
      while 1:
        date += datetime.timedelta(days=30)
        yield (date)

def format_date(x, pos=None):
     return dates.num2date(x).strftime('%Y-%m-%d') #use FuncFormatter to format dates

r_d = random_date()
some_dates = [dates.date2num(r_d.next()) for i in range(0,20)]


fig = plt.figure(facecolor = 'k')
ax = fig.add_subplot(111, projection='3d')
fig.subplots_adjust(left=0.1, bottom=0.1, right=0.9, top=0.9)


for c, z in zip(['r', 'g', 'b', 'y'], [30, 20, 10, 0]):
    xs = np.array(some_dates)
    ys = np.random.rand(20)
    ax.bar(xs, ys, zs=z, zdir='y', color=c, alpha=0.8,width=8)

ax.w_xaxis.set_major_locator(ticker.FixedLocator(some_dates)) # I want all the dates on my xaxis
ax.w_xaxis.set_major_formatter(ticker.FuncFormatter(format_date))
for tl in ax.w_xaxis.get_ticklabels(): # re-create what autofmt_xdate but with w_xaxis
       tl.set_ha('right')
       tl.set_rotation(30)     

ax.set_ylabel('Series')
ax.set_zlabel('Amount')

plt.show()
+3
source share
1 answer

- ax.dist - :

ax.dist = 15
+3

Source: https://habr.com/ru/post/1791315/


All Articles