小编DrD*_*Dee的帖子

如何在matplotlib/Python中切换后端

我正在努力解决以下问题.我需要生成由一组图表组成的报告.除了一个之外,所有这些图表都是使用Matplotlib默认后端(TkAgg)制作的.需要使用开罗后端制作一张图表,原因是我正在绘制igraph图,并且只能使用Cairo绘制.

问题是我不能动态改变后端,例如以下方法不起作用:(
matplotlib.pyplot.switch_backend('cairo.png') 我知道switch_backend功能是实验性的)

我也尝试过,matplotlib.use("cairo.png")但这会导致导入问题,因为matplotlib.use("cairo.png")语句应该在导入之前出现matplotlib.pyplot.但是在剧本的生命历程中我需要两个不同的后端.

所以我的问题是有人有一个代码片段,显示如何在Matplotlib中切换后端?

非常感谢!

更新:我编写了一个加载matplotlib的片段,显示默认后端,卸载matplotlib,重新加载它并更改后端:

import matplotlib
import matplotlib.pyplot as plt
import sys
print matplotlib.pyplot.get_backend()

modules = []
for module in sys.modules:
    if module.startswith('matplotlib'):
        modules.append(module)

for module in modules:
    sys.modules.pop(module)

import matplotlib
matplotlib.use("cairo.png")
import matplotlib.pyplot as plt

print matplotlib.pyplot.get_backend()
Run Code Online (Sandbox Code Playgroud)

但这真的是这样做的吗?

更新2:我昨天有一些严重的大脑冻结......简单而明显的解决方案是将开罗后端用于所有图表而不是切换后端:)

更新3:实际上,它仍然是一个问题所以谁知道如何动态切换matplotlib后端....请发布你的答案.

python backend matplotlib cairo

68
推荐指数
8
解决办法
7万
查看次数

什么是语言X的良好网络图库?

我注意到一个反复出现的问题是:"什么是语言X的良好网络图库".我和很多图书馆一起玩过,我可以与你分享我的经历.

Python: NetworkX是一个强大的库,它具有内置的可视化功能,但也有一个使用pyGraphviz的Graphviz接口.(pyGraphviz和NetworkX由同一作者撰写).NetworkX是开源的,非常容易使用.

Perl: 开发Circos可视化基因组和其他高度复杂的数据集.它将始终使用圆形布局,但如果您的网络非常大并且其"模块化"分数较低,则它通常是最合适的布局.Circos是开源的.

.Net: NodeXL由Microsoft Research开发,既是Excel的附加组件,也是.Net 3.5库的附加组件.它非常开放(对于微软的标准)并使用Fruchterman-Reingold算法进行可视化.

Java: JUNG2最近发布,也是一个强大的库.具有扩展的可视化和关键指标支持.JUNG2是开源的.

UbiGraph: UbiGraph具有与不同语言的接口,包括Python(和NetworkX具有UbiGraph支持),Ruby,PHP,Java,C,C++,C#,Haskell和OCaml.它使用XML-RPC服务器对网络图进行非常简洁的三维可视化.基本版本是免费的,您必须支付专业版.

独立: 您可以随时使用的现成的货架包,如:Graphviz的(赢,Linux和OSX),Pajek(胜),UCINET(胜),甚至Visio中(胜).

我相信还有更多的软件包,但这些是我自己使用的软件包.还有哪些其他库或包?

language-agnostic graph-theory graph

39
推荐指数
2
解决办法
1万
查看次数

使用Python/Django的Oauth for Google API示例

我试图让Oauth使用Python使用Google API.我尝试了不同的oauth库,如oauth,oauth2djanog-oauth,但我无法使其工作(包括提供的示例).

为了调试Oauth,我使用了Google的Oauth Playground,我研究了APIOauth文档

对于一些库我正在努力获得正确的签名,与其他库我正在努力将请求令牌转换为授权令牌.如果有人可以使用上述库之一向我展示Google API的工作示例,那将对我有什么帮助.

编辑:我的初步问题没有得到任何答案,所以我添加了我的代码.导致此代码无效的原因有两种:
1)Google未授权我的请求令牌,但不太确定如何检测此
签名2)访问令牌的签名无效但我想了解哪些oauth参数Google因为我能够在第一阶段产生适当的签名.

这是使用oauth2.py和Django编写的,因此是HttpResponseRedirect.

REQUEST_TOKEN_URL = 'https://www.google.com/accounts/OAuthGetRequestToken'
AUTHORIZATION_URL = 'https://www.google.com/accounts/OAuthAuthorizeToken'
ACCESS_TOKEN_URL = 'https://www.google.com/accounts/OAuthGetAccessToken'

CALLBACK = 'http://localhost:8000/mappr/mappr/oauth/' #will become real server when deployed

OAUTH_CONSUMER_KEY = 'anonymous'
OAUTH_CONSUMER_SECRET = 'anonymous'

signature_method = oauth.SignatureMethod_HMAC_SHA1()
consumer = oauth.Consumer(key=OAUTH_CONSUMER_KEY, secret=OAUTH_CONSUMER_SECRET)
client = oauth.Client(consumer)

request_token = oauth.Token('','') #hackish way to be able to access the token in different functions, I know this is bad, but I just want it …
Run Code Online (Sandbox Code Playgroud)

python django oauth google-api

35
推荐指数
2
解决办法
2万
查看次数

如何编写用于在Python中导入模块的unittest

编写单元测试以查看模块是否正确安装的pythonic方法是什么?通过正确安装我的意思是,它不会引发ImportError:没有名为foo的模块.

python django unit-testing

6
推荐指数
1
解决办法
429
查看次数

如何读取压缩的bz2(bzip2)Wikipedia转储到流xml记录阅读器中,用于hadoop map reduce

我正在使用Hadoop Map Reduce来研究维基百科数据转储(以bz2格式压缩).由于这些转储太大(5T),我无法将xml数据解压缩为HDFS,只使用hadoop提供的StreamXmlRecordReader.Hadoop确实支持解压缩bz2文件,但它会任意拆分页面并将它们发送到映射器.因为这是xml,我们需要将分割作为标记.反正有没有使用内置的bz2解压缩和hadoop提供的流xml记录阅读器?

xml streaming hadoop wikipedia bzip2

6
推荐指数
2
解决办法
3995
查看次数

如何在C中初始化指向NULL的动态指针数组?

我对C相当陌生,我不明白为什么以下两个语句不能产生相同的结果:

char *fields[14] = {NULL};

const int num_fields = 14;
char *fields[num_fields] = {NULL};
Run Code Online (Sandbox Code Playgroud)

选项1有效,但选项2无效。它说“可变大小的对象可能未初始化”,并给出警告“警告:数组初始化器中的多余元素”。我在OSX上使用gcc 4.2.1。

感谢您分享您的想法!

c

2
推荐指数
1
解决办法
9276
查看次数