首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试,除了:传递多行

尝试,除了:传递多行
EN

Stack Overflow用户
提问于 2015-03-16 17:48:13
回答 2查看 698关注 0票数 0

我正在为一个名为Abaqus的程序编写另一个脚本,它在图表上绘制XY数据.我的脚本中的一部分将根据是否命名为特定名称来更改行样式.

所以我有很多不同的曲线名,如果图表中包含了特定的名称,我想执行代码来更改样式.例如..。

代码语言:javascript
复制
    session.curves[PathNameNew+'_S201-16'].symbolStyle.setValues(show=True)
    session.curves[PathNameNew+'_S201-16'].symbolStyle.setValues(marker=FILLED_DIAMOND)
    session.curves[PathNameNew+'_S201-16'].symbolStyle.setValues(size=2)
    session.curves[PathNameNew+'_S201-16'].symbolStyle.setValues(color='#009afb')
    session.curves[PathNameNew+'_S247-16'].symbolStyle.setValues(show=True)
    session.curves[PathNameNew+'_S247-16'].symbolStyle.setValues(marker=FILLED_DIAMOND)
    session.curves[PathNameNew+'_S247-16'].symbolStyle.setValues(size=2)
    session.curves[PathNameNew+'_S247-16'].symbolStyle.setValues(color='#009afb')
    session.curves[PathNameNew+'_RELEASE'].symbolStyle.setValues(show=True)
    session.curves[PathNameNew+'_RELEASE'].symbolStyle.setValues(marker=FILLED_DIAMOND)
    session.curves[PathNameNew+'_RELEASE'].symbolStyle.setValues(size=2)
    session.curves[PathNameNew+'_RELEASE'].symbolStyle.setValues(color='#009afb')   
    session.curves[PathNameNew+'_S205-18'].lineStyle.setValues(thickness=1)

我有大约50个不同的曲线名称,不同的风格,并不是所有的曲线都会被使用,所以我想用一个尝试,除了:通过方法来实现这一点。不过,这意味着我必须对每个曲线的名字.

有更好的办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-16 17:55:39

您可以始终创建一个闭包函数来为您执行以下操作:

代码语言:javascript
复制
def my_big_function():
    ...
    def set_symbolstyle_value(key, **kwargs):
        try:
            session.curves[PathNameNew + key].symbolStyle.setValues(**kwargs)
        except MyException:
            do_something()

    set_symbolstyle_value('_S201-16', show=True)
    set_symbolstyle_value('_S201-16', marker=FILLED_DIAMOND)
    ...

功能很便宜。不要害怕使用它们。

票数 2
EN

Stack Overflow用户

发布于 2015-03-16 18:03:53

构建一个元组列表,每个元组包含两个元素--曲线名称和如下所示的参数块:

代码语言:javascript
复制
[('somename',{'color':'blue', 'marker':FILLED_DIAMOND})...]

然后,根据上面的列表,执行以下操作:

代码语言:javascript
复制
for name, par in lst:
    if name in session.curves:
        session.curves[name].symbolStyle.setValues(**par)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29083582

复制
相关文章

相似问题

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