小编Sav*_*nry的帖子

PyCharm不会正确打开matplotlib图

我有一个PyCharm和matplotlib的问题,我似乎无法纠正.

当我使用PyCharm和ipython作为解释命令的控制台时,在我保存图形之前不会显示图形.但是,当我尝试从PyCharm外部绘图时,这不会发生.

这是一个在PyCharm 中失败的exmaple进程:

In[2]: import matplotlib.pyplot as plt
Backend MacOSX is interactive backend. Turning interactive mode on.

In[3]: plt.plot([1,2,3,4],[1,4,9,16], 'ro')
Run Code Online (Sandbox Code Playgroud)

打开一个标有"图1"标签的窗口.但是,没有绘图,鼠标悬停在它上面时切换到SPOD(我在Mac上).此时,我可以试试

In[4]: plt.show()
Run Code Online (Sandbox Code Playgroud)

但仍然没有出现情节.但是,如果我这样做:

In[5]: plt.savefig('foo.png')
Run Code Online (Sandbox Code Playgroud)

不仅用该名称保存图形,图形显示在图1窗口中.请注意,PyCharm已经设置了交互模式,并且已经识别出我的后端(应该是?)MacOS.

我在通用终端会话中通过python和ipython控制台使用相同的过程,甚至通过emacs,并且在所有情况下,情节都出现在调用plt.plot()线路上.无需plt.show()通话.

实际上,我甚至可以通过PyCharm使用终端并获得所需的情节.一个答案是我应该使用这些方法进行绘图并忽略PyCharm.然而,假设我发现PyCharm的"花里胡哨"足够吸引人,我真的想用它作为我的IDE,但希望能够检查情节而不必经历plt.savefig()麻烦(因为我没有我想要保持我尝试的每一个阴谋.

我也试过切换后端plt.switch_backend().我已经尝试了列出的所有选项,所有这些选项都失败的原因主要是没有安装某些软件包或者系统错误.我没有尝试安装任何东西来使用新的后端,所以我不知道是否有另一个正确安装的后端可以解决这个问题.当然,更愿意尝试!

系统细节:

MacBookPro Retina 2012年中期,16GB内存,优胜美地10.10

Python 3.4.2

ipython 2.3.1

PyCharm Community Edition 4.0.4

请注意,我已根据以下问题审核并尝试了各种修补程序:

Python图将无法打开

如何在matlab/python中切换后端

PyCharm + Matplotlib?

Matplotlib图被困(灰色窗口)

尽管我打电话给pyplot.show(),matplotlib也没有显示我的图画

编辑 如下面的评论中所述,这似乎是一个错误,而不是我的设置失败.因此,我正在修改这个问题,询问是否有已知的解决方法.

python plot matplotlib pycharm

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

计算R中两个向量的汉明距离?

我正在尝试计算R中两个向量之间的汉明距离.我目前正在尝试使用"e1071"包和hamming.distance函数,如下所示:

library(e1071)
H <- hamming.distance(X) 
Run Code Online (Sandbox Code Playgroud)

其中X是一个带有2行的数据帧,并且(在我的特定数据中)有667列,每个观察值为0或1.

最初我得到了错误:

Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
Run Code Online (Sandbox Code Playgroud)

经过一些研究,似乎一个修复可能会增加R中的基本选项.我通过选项(表达式= 5000),然后尝试使用不同的值代替5000.但这只产生错误:

Error: C stack usage is too close to the limit
Run Code Online (Sandbox Code Playgroud)

我不是一个程序员,并且针对这个最近的错误的修复似乎与包e1071中的某些东西有关,可能没有正确调用(或在正确的时间).

关于我做错了什么的任何想法?我最终想要大量向量之间的汉明距离,这只是一个起点.如果这与内存分配有关,有什么建议可以处理吗?

r

5
推荐指数
3
解决办法
1万
查看次数

如何按条件对 Julia DataFrame 进行子集化,其中列有缺失值

这看起来应该是非常简单的事情,但我无法完成。

df在 julia 中有一个数据框,其中一列的类型为Array{Union{Missing, Int64},1}

该列中的值为:[missing, 1, 2]

我只想对数据框进行子集化,df以查看与条件相对应的那些行,例如列等于 2 的位置。

我尝试过的 --> 结果:

df[df[:col].==2] --> MethodError: no method matching getindex

df[df[:col].==2, :] --> ArgumentError: invalid row index of type Bool

df[df[:col].==2, :col]--> BoundsError: attempt to access String(请注意,执行 just 会df[!, :col]导致 : 1339-element Array{Union{Missing, Int64},1}: [...eliding output...],到目前为止我在 julia 中最喜欢的警告:Warning: getindex(df::DataFrame, col_ind::ColumnIndex) is deprecated, use df[!, col_ind] instead.刚刚使用它似乎可以使我免于警告,但无论如何。)

这不可能像看起来那么难。

就像仅供参考一样,我可以通过using Query多行 sql …

subset conditional-statements dataframe julia

5
推荐指数
1
解决办法
1571
查看次数

再次:UnicodeEncodeError:ascii编解码器无法编码

我有一个XML文件的文件夹,我想解析.我需要从这些文件的元素中获取文本.它们将被收集并打印到CSV文件中,其中元素列在列中.

真正做到这一点的,现在一些我的文件.也就是说,对于我的许多XML文件,这个过程很顺利,我得到了我想要的输出.执行此操作的代码是:

import os, re, csv, string, operator
import xml.etree.cElementTree as ET
import codecs
def parseEO(doc):
    #getting the basic structure
    tree = ET.ElementTree(file=doc)
    root = tree.getroot()
    agencycodes = []
    rins = []
    titles =[]
    elements = [agencycodes, rins, titles]
    #pulling in the text from the fields
    for elem in tree.iter():
        if elem.tag == "AGENCY_CODE":
            agencycodes.append(int(elem.text))
        elif elem.tag == "RIN":
            rins.append(elem.text)
        elif elem.tag == "TITLE":
            titles.append(elem.text)
    with open('parsetest.csv', 'w') as f:
        writer = csv.writer(f)
        writer.writerows(zip(*elements))


parseEO('EO_file.xml')     
Run Code Online (Sandbox Code Playgroud)

但是,在某些版本的输入文件中,我得到了臭名昭着的错误: …

python ascii codec elementtree python-2.7

3
推荐指数
1
解决办法
7583
查看次数