亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Matplotlib 3d scatter _facecolors3d 不起作用

Matplotlib 3d scatter _facecolors3d 不起作用

大話西游666 2023-10-11 22:43:59
我正在嘗試保存 3d 散點圖動畫,其中點一次出現一個。我使動畫正常工作,但是當我設置點的面顏色時,它們沒有生效并且所有點都顯示為藍色。當我在靜態圖像上使用相同的顏色數組時,顏色效果很好。動畫代碼:import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dimport matplotlib.animationimport randomimport seaborn as snsimport pandas as pdimport jsonimport osfrom matplotlib.animation import FuncAnimationimport mpl_toolkits.mplot3d.axes3d as p3from matplotlib import rcfrom IPython.display import HTMLfrom itertools import productx=[]y=[]for i in range(-80, 80, 10):    x.append(i)    y.append(i)combs = list(product(x,y))def obj(x, y):    global HISTORY    e = 2.718    res = 7*x*y/(e**(0.001*x**2 + 0.001*y**2))    return resz = [obj(x,y) for x, y in combs]x = [obj[0] for obj in combs]y = [obj[1] for obj in combs]data = [[x[i],y[i],z[i]] for i in range(len(x))]cmap = sns.cubehelix_palette(as_cmap=True)m = max(z) # Get the worst score so we can use it as the darkest area of the plot.face_colors = np.array([cmap(i/m) for i in z]) # Map all of the values with cmap colors. df = pd.DataFrame(data, columns=["x","y","z"])fig = plt.figure()ax = fig.add_subplot(111,projection='3d')sc = ax.scatter([],[],[], alpha=0.5)def update(i):    sc._offsets3d = (df.x.values[:i], df.y.values[:i], df.z.values[:i])    sc._facecolors3d = face_colors[:i]    sc._facecolors2d=sc._facecolors3dax.set_xlabel('X')ax.set_ylabel('Y')ax.set_zlabel('Z')ax.set_xlim(min(x),max(x))ax.set_ylim(min(y),max(y))ax.set_zlim(min(z),max(z))ani = matplotlib.animation.FuncAnimation(fig, update, frames=len(df), interval=70)HTML(ani.to_html5_video())當我不使用動畫而只調用 plt.scatter 時,如下所示:sc = ax.scatter(df.x.values,df.y.values,df.z.values, facecolors=face_colors)我的圖像效果很好:如何在動畫中保留這些顏色?
查看完整描述

1 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

可能只是一個錯字。_facecolor3d而不是_facecolors3d嘗試這個:

def update(i):
    sc._offsets3d = (df.x.values[:i], df.y.values[:i], df.z.values[:i])
    sc._facecolor3d = face_colors[:i]
    sc._edgecolor3d = face_colors[:i]


查看完整回答
反對 回復 2023-10-11
  • 1 回答
  • 0 關注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號