首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用matplotlib创建散点图数组

用matplotlib创建散点图数组
EN

Stack Overflow用户
提问于 2022-09-15 06:31:43
回答 1查看 26关注 0票数 0

我目前正在创建散射图来表示铁磁性材料的自旋取向,但这随着时间的推移而改变。我想要做的是在一个for循环中创建这些情节。目前我可以创建每个地块,但我不知道如何存储和回忆我正在制作的地块。

理想情况下,我想在文档的后面回忆一个特定的情节,而不必将其保存为图像。

这有可能吗?

我目前正在使用SageMath和木星笔记本。

这是我目前用来生成散点图的代码:

代码语言:javascript
复制
Beta = ellipsis_range(0.05,Ellipsis,0.8,step=0.05)
for i in range(len(Beta)):
    B = Beta[i]

    j = 0
   
    if B<0.85:
        plt.figure(figsize=((9,6)))
        for y in range(1,N+1):
            for x in range(1,N+1):
                if state[j]==1:
                    plt.scatter(x,y,color="red",marker="^")
                if state[j]==-1:
                    plt.scatter(x,y,color="blue",marker="v")
                j = j+1
        plt.title("Spin Distribution for Beta="+str(round(B,2)))
        plt.show()

我的最终目标是使这些情节生动化。

提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2022-09-15 08:39:19

从那以后,我成功地将我的散点图存储为一个数组!

代码语言:javascript
复制
def spinplot(B,j,N):
    plot = plt.figure(figsize=((9,6)))
    for y in range(1,N+1):
        for x in range(1,N+1):
            if state[j]==1:
                plt.scatter(x,y,color="red",marker="^")
            if state[j]==-1:
                plt.scatter(x,y,color="blue",marker="v")
        j = j+1
    plt.title("Spin Distribution for Beta="+str(round(B,2)))
    return plot

在最初的for-循环中,我将绘图代码替换为:

代码语言:javascript
复制
j = 0
if B<0.85:
    plots[k] = spinplot(B,j,N)
    plt.close()
k = k+1

我现在正试着给他们动画。理想情况下我会把它作为礼物保存下来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73726542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档