循环数据并创建单独的图形

2024-05-04

我正在循环遍历不同分子名称的列表,并尝试为每个分子生成单独的无花果。但对于每个连续的分子,新的数据也包含了之前的所有数据。我在收集数据后打印了数据,并且对于每个循环,它都显示了正确的数量。这是我的完整代码

import matplotlib
import matplotlib.pyplot as plt
import numpy as np

mols = ["P_Z1", "P_Z2", "TT_Z1", "TT_Z2", "TP_Z1", "TP_Z2"]


for mol in mols:
    en = []
    den = []
    with open (mol+"clustered.txt") as f:
        for line in f:
            e = line.strip().split()[1]
            en.append(e)
    with open (mol+"densities.txt") as g:
        for line in g:
            d = line.strip()
            den.append(d)
    data = zip(en,den)
    print data
    for energy, density in data:
        plt.xlabel("Density g/cubic cm")
        plt.ylabel("Energy kJ/mol")
        ax = plt.gca()
        ax.spines["right"].set_color('none')
        ax.xaxis.set_ticks_position('top')
        ax.yaxis.set_ticks_position('left')
        ax.spines["bottom"].set_color('none')
        ax.xaxis.set_label_position('top')
        ax.spines['left'].set_color('black')
        ax.spines['top'].set_color('black')
        ax.xaxis.label.set_color('black')
        ax.yaxis.label.set_color('black')
        ax.tick_params(colors='black')
        plt.plot(density, energy, "ro")
        plt.savefig(mol+".png", bbox_inches="tight", dpi=200, transparent=True)

任何帮助将不胜感激!


尝试使用更多 OOP 方法,使用图形和子图。例如,

for mol in mols:
    for energy, density in data:
        fig = plt.figure()
        ax = fig.addsubplot(111)
        ax.plot(density, energy, 'ro')

        ax.set_xlabel(...)
        ax.set_ylabel(...)
        [a.label.set_color('black') for a in (ax.xaxis, ax.yaxis)]
        # more spines and axis tinkering


        fig.savefig(mol+".png")

这样,您就可以为每个能量/密度图创建一个新图形。

Edit:

更好的选择是在循环外部创建图形和轴,并在每次绘图之前清除循环。谢谢@Rutger Kassies

fig = plt.figure()
ax = fig.addsubplot(111)
for mol in mols:
    for energy, density in data:
        ax.cla() # or ax.clear()
        ax.plot(density, energy, 'ro')

        ax.set_xlabel(...)
        ax.set_ylabel(...)
        [a.label.set_color('black') for a in (ax.xaxis, ax.yaxis)]
        # more spines and axis tinkering

        fig.savefig(mol+".png")

Edit2:

根据@tcaswell 的建议进行更新。

# Create the figure and subplot
fig = plt.figure()
ax = fig.addsubplot(111)

# Tinker with labels and spines
ax.set_xlabel(...)
ax.set_ylabel(...)
[a.label.set_color('black') for a in (ax.xaxis, ax.yaxis)]
...

# Plot data and save figures
for mol in mols:
    for energy, density in data:
        ax.cla() # or ax.clear()
        p, = ax.plot(density, energy, 'ro')

        fig.savefig(mol+".png")
        p.remove() # removes specific plot from figure

请注意,这只会为每个图形渲染一条密度/能量线。如果你想每个图有多条线,请执行类似的操作

# same preamble
for mol in mols:
    lines = []
    for energy, density in data:
        ax.cla() # or ax.clear()
        p, = ax.plot(density, energy, 'ro')
        lines.append(p)

        fig.savefig(mol+".png")
    [p.remove() for p in lines]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

循环数据并创建单独的图形 的相关文章

随机推荐

  • Python matplotlib:数据坐标中的位置颜色条

    我想通过指定数据坐标中的位置来将颜色条放置在散点图中 以下是指定图形坐标时它如何工作的示例 import numpy as np import matplotlib pyplot as plt Generate some random da
  • reindex 目录 URL 在 magento 中重写永无止境

    我已使用自定义导入配置文件将 6K 类别和 16K 产品导入到 magento 当我尝试重新索引时 除了 目录 URL 重写 之外的所有内容都正常工作 该 目录 URL 重写 一直显示 正在处理 但从未完成 日志和异常文件不显示任何内容 我
  • 命名 Python 记录器

    在 Django 中 我到处都有记录器 目前具有硬编码名称 对于模块级日志记录 即在视图函数的模块中 我有这样做的冲动 log logging getLogger name 对于类级别的日志记录 即在类中 init 方法 我有这样做的冲动
  • Kotlin 中是否可以为 mutableStateOf() 提供自定义设置器

    我想在每次设置某个状态后两秒进行一些操作 viewModel 内的代码 var isLoading mutableStateOf LoadingState NONE set value Timber d Custom Setter Not
  • 如何为 Spring Datasource 创建自定义重试逻辑?

    我正在连接到 Azure SQL 数据库 下一个任务是在连接失败时创建自定义重试逻辑 我希望重试逻辑在启动时 如果需要 以及应用程序运行时出现连接失败时运行 我做了一个测试 从我的应用程序中删除了 IP 限制 然后导致我的应用程序出现异常
  • 有没有办法可以将 iPhone 屏幕捕获为视频? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望能够将 iPhone 屏幕捕获为视频 但我不确定执行此操作的最佳方法 谁能帮助指导我如何最好地做到这一点没有越狱 简而言之 这是我的
  • 如何获取uinput创建的设备的名称(路径)

    我已经成功设置了一个小程序来创建uinput questions tagged uinput我计划使用它来自动测试接收键盘输入事件的应用程序 我已关注both http thiemonge org getting started with
  • 使用 JPA 保存 Map

    在类中保留以下映射的最佳方法是什么 Entity class MyClass ManyToMany cascade CascadeType ALL Map
  • Netty:正确关闭 WebSocket

    如何从服务器端正确关闭 WebSocket 通道 连接 如果我使用一个ctx getChannel close the onerror在浏览器 Firefox 9 中抛出 页面加载时与 ws localhost 8080 websocket
  • 如何修复错误 MC1000 未知构建错误,“找不到类型“System.Web.UI.TagPrefixAttribute”

    我有一个 WPF 项目 对于我正在使用的报告服务 Microsoft ReportingServices ReportViewerControl WebForms Microsoft ReportingServices ReportView
  • 如何更改同一行元素的位置

    我有一个包含 3 个元素的块 最小值 产品库存 最大值 我需要做的就是找到一种方法将产品库存调整到两个值之间 我的猜测是问题应该出在这些线上 div class max inline parent div class inline bloc
  • iPhone 负数键盘布局?

    我的用户需要输入纬度和经度 当然我需要验证输入的值是否是合法的纬度 经度值 我想要一个键盘布局 可以为我完成一些工作 消除字母字符 标点符号等 只留下数字和 数字键盘似乎无法做到这一点 缺少 SDK 附带的任何其他键盘布局也无法做到这一点
  • Spring MVC:如何在 Thymeleaf 中获取当前 url

    我在用Thymeleaf 模板引擎 http www thymeleaf org doc html Using Thymeleaf html使用 Spring Web MVC 在当前 url 的帮助下创建 url 时我陷入困境 有什么方法可
  • 组件内调用 Mixin 的方法(Vuejs)

    我无法从组件调用 mixin 方法 出现此错误this hello is not a function 我可以打电话hello 来自 Vue 实例 但我无法在组件内调用它 有什么事吗 div div
  • 何时以及如何使用 C++ htonl 函数

    cout lt lt Hello World lt lt endl 对于我在堆栈上的第一篇文章overflow 我们什么时候应该使用htonl功能 我已经浏览了手册页 但是 我不太明白何时以及如何使用它 Host TO N网络翻译 它确保e
  • MS SQL 2008 如何读取日志

    我有一个有很多行的表 有什么办法可以找出来当插入具体行时 我没有创建 更新时间列 Thanks 检查日志以读取此类信息可以在单个日志条目的基础上完成 但该格式仍然没有记录 而且解码起来确实不容易 我只会出于纯粹的兴趣或取证目的而查看它 如果
  • 使用 parse.com 并遇到分配内存问题

    我是编程新手 过去 3 个月我一直在制作应用程序 并学到了一些东西 但我还没有遇到如何解决这个问题 我一直使用 Parse com 作为我的服务器 发送图片 保存用户数据等 有了所有这些数据 如果我多次打开某些活动 特别是带有图片的活动 应
  • Windows Workflow Foundation 4 和 ASP.NET MVC

    我们正在评估 Windows Workflow Foundation 4 在基于 MVC 3 的 Web 应用程序中的使用 我们希望为不同的项目创建灵活的订单工作流程 有人知道有关此类应用程序的一般架构或实践实验室的详细信息吗 一些具体问题
  • SAXException:错误的信封标签

    我正在尝试连接到通过 Web 服务客户端保护的 Web 服务 https Eclipse 生成了一个基于存根的 Web 服务客户端 对我来说看起来不错 当我尝试从 Web 服务调用方法时 问题就出现了 String a String web
  • 循环数据并创建单独的图形

    我正在循环遍历不同分子名称的列表 并尝试为每个分子生成单独的无花果 但对于每个连续的分子 新的数据也包含了之前的所有数据 我在收集数据后打印了数据 并且对于每个循环 它都显示了正确的数量 这是我的完整代码 import matplotlib