matplotlib 3D 图形坐标轴纵横比
我正在绘制一些三维数据,结果图形总是生成一个三维立方体。这是合理的,但我想把其中一个轴延长一点(也就是调整长宽比),这样就能得到一个三维长方体,而不是立方体。
比如,下面这个图形是完全可以用的——我该怎么做才能让y轴在视觉上比其他轴更长呢?
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
N = 1000
bm = pd.DataFrame(
index=pd.bdate_range(start='2012-01-01', periods=N, freq='B'),
data={x: np.random.randn(N) for x in range(1, 11)}
)
# Simulate some zeros
bm = pd.DataFrame(index=bm.index, columns=bm.columns, data=np.where(np.abs(bm.values) < 0.02, 0, bm.values))
# Set zeros to Nan so that I don't plot them
bm = bm.replace({0: np.nan})
# unstack dataframe
flat_bm = bm.reset_index(drop=True).unstack() # DROP DATES AND REPLACE WITH INT
x = flat_bm.index.get_level_values(0)
y = flat_bm.index.get_level_values(1)
z = flat_bm.values
# Set up plot
fig = plt.figure(figsize = (15,10))
ax = plt.axes(projection ='3d')
# plotting
ax.scatter(x, y, z, '.', c=flat_bm.values, cmap='Reds')