小编Roh*_*hit的帖子

matplotlib中的垂直和水平线

我不太明白为什么我无法在指定的限制下创建水平和垂直线.我想通过这个框绑定数据.但是,双方似乎并不遵守我的指示.为什么是这样?

# CREATING A BOUNDING BOX
# BOTTOM HORIZONTAL
plt.axhline(y=.4, xmin=0.25, xmax=0.402, linewidth=2, color = 'k')
# RIGHT VERTICAL
plt.axvline(x=0.402, ymin=0.4, ymax = 0.615, linewidth=2, color='k')
# LEFT VERTICAL
plt.axvline(x=0.1, ymin=0.58, ymax = 0.79, linewidth=2, color='k')
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

matplotlib

115
推荐指数
3
解决办法
25万
查看次数

无法在virtualenv中"将matplotlib.pyplot导入为plt"

我正在虚拟环境中使用flask.我能够用pip安装matplotlib,我可以import matplotlib在Python会话中.但是,当我导入它时

matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

>>> import matplotlib.pyplot as plt

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/pyplot.py", line 109, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
    globals(),locals(),[backend_name],0)
  File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/backends/backend_macosx.py", line 24, in <module>
    from matplotlib.backends import _macosx
RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a …
Run Code Online (Sandbox Code Playgroud)

python macos matplotlib virtualenv flask

66
推荐指数
4
解决办法
4万
查看次数

在直方图matplotlib中更改默认x范围

我想更改直方图的默认x范围.数据范围是7到12.但是,默认情况下,直方图从7开始,到13结束.我希望它从6.5开始,到12.5结束.但是,刻度应该从7到12.我该怎么做?

import asciitable 
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import pylab
from pylab import xticks

data = asciitable.read(file)
hmag = data['col8']
visits = data['col14']
origin = data['col13']


n, bins, patches = plt.hist(hmag, 30, facecolor='gray', align='mid')
xticks(range(7,13))
pylab.rc("axes", linewidth=8.0)
pylab.rc("lines", markeredgewidth=2.0) 
plt.xlabel('H mag', fontsize=14)
plt.ylabel('# of targets', fontsize=14)
pylab.xticks(fontsize=15)
pylab.yticks(fontsize=15)
plt.grid(True)
plt.savefig('hmag_histogram.eps', facecolor='w', edgecolor='w', format='eps')
plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib xrange histogram

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

IPython命令找不到终端OSX.Pip安装

使用通过自制软件安装的Python 2.7.然后我用pip来安装IPython.所以,IPython似乎安装在:

/usr/local/lib/python2.7/site-packages/

我认为这是真的,因为有一个IPython目录和ipython蛋.

但是,当我在终端输入ipython时,我得到:

-bash:ipython:找不到命令

我不明白为什么这只发生在IPython而不是python?另外,我该如何解决这个问题?我应该在.bashrc中添加什么路径?我该如何添加?

目前,我的.bashrc读取:

PATH = $ PATH:在/ usr/local/bin目录/

谢谢!

macos bash terminal command-line ipython

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

Pandas中有多个直方图

我想创建以下直方图(见下图)取自"Think Stats"一书.但是,我无法将它们放在同一个地块上.每个DataFrame都有自己的子图.

我有以下代码:

import nsfg
import matplotlib.pyplot as plt
df = nsfg.ReadFemPreg()
preg = nsfg.ReadFemPreg()
live = preg[preg.outcome == 1]

first = live[live.birthord == 1]
others = live[live.birthord != 1]

#fig = plt.figure()
#ax1 = fig.add_subplot(111)

first.hist(column = 'prglngth', bins = 40, color = 'teal', \
           alpha = 0.5)
others.hist(column = 'prglngth', bins = 40, color = 'blue', \
            alpha = 0.5)
plt.show()
Run Code Online (Sandbox Code Playgroud)

当我使用ax = ax1时,上面的代码不起作用:pandas多个图不能作为组合,也不是这个例子做我需要的:使用pandas覆盖多个直方图.当我按原样使用代码时,它会创建两个带直方图的窗口.任何想法如何结合它们?

以下是我希望看到最终数字的示例: 在此输入图像描述

python matplotlib histogram pandas

18
推荐指数
5
解决办法
4万
查看次数

删除matplotlib中乳胶下标中的斜体

我想删除在标签中使用下标时出现的斜体字体.例如,x标签中的"Teff"以斜体显示"eff".我想乳胶不能以这种方式呈现它.通常,在latex中,可以使用\ rm {}命令来实现.但是,这在matplotlib中不起作用.请帮忙.

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(10)
y = x

plt.plot(x,y,'ro')
plt.xlabel('Primary T$_{eff}$')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python latex matplotlib

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

在Pandas中将Float转换为String

我对Pandas中的数据类型"object"感到困惑.究竟什么是"对象"?

我想将变量"SpT"(见下文)从object更改为String.

> df_cleaned.dtypes
    Vmag        float64
    RA          float64
    DE          float64
    Plx         float64
    pmRA        float64
    pmDE        float64
    B-V         float64
    SpT          object
    M_V         float64
    distance    float64
    dtype: object
Run Code Online (Sandbox Code Playgroud)

为此我做了以下事情:

df_cleaned['SpT'] = df_cleaned['SpT'].astype(str)
Run Code Online (Sandbox Code Playgroud)

但这对SpT的类型没有影响.

这样做的原因是当我执行以下操作时:

f = lambda s: (len(s) >= 2)  and (s[0].isalpha()) and (s[1].isdigit())
i  = df_cleaned['SpT'].apply(f)
df_cleaned = df_cleaned[i]
Run Code Online (Sandbox Code Playgroud)

我明白了:

TypeError: object of type 'float' has no len()
Run Code Online (Sandbox Code Playgroud)

因此,我相信如果我将"对象"转换为"字符串",我会做我想做的事情.

更多信息:这就是SpT的样子:

HIP
1                F5
2               K3V
3                B9
4               F0V
5             G8III
6              M0V:
7                G0
8      M6e-M8.5e Tc
9                G5 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

创建具有左偏概率分布的随机数

我想在 1-100 之间随机选择一个数字,这样获得数字 60-100 的概率高于 1-59。

我希望有可能成为数字 1-100 的左偏分布。也就是说,它有一个很长的尾巴和一个峰值。

沿线的东西:

pers = np.arange(1,101,1)
prob = <left-skewed distribution>
number = np.random.choice(pers, 1, p=prob)
Run Code Online (Sandbox Code Playgroud)

我不知道如何生成左偏离散概率函数。有任何想法吗?谢谢!

python statistics

9
推荐指数
2
解决办法
7833
查看次数

在Python面向对象的绘图中删除图例周围的框架

我想删除图例框周围的框架.我找到了一些方法.但是,没有一个用"轴方法"实现它们.

下面显示的代码得到的结果,但我想知道一个更干净,更优雅的方式,也许像ax.legend.draw_frame(False)或类似的东西.如果没有使用pylab这样的方法存在任何想法?

解决方案:ax.legend(numpoints=1, loc=3, frameon=False)按照Evert的建议使用

import numpy as np
import matplotlib.pyplot as plt
from pylab import legend

x = np.linspace(1,10, 100)
y = x**3

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.plot(x,y, 'bo', label='Blah!')
lg = legend(numpoints = 1, loc=2)
lg.get_frame().set_alpha(0)
#ax.legend(numpoints = 1, loc=2)

plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

在Matplotlib中定位5个子图

我想定位5个子图,使得顶部有三个,底部有两个,但是彼此相邻.当前代码接近但我希望最终结果如下所示(忽略灰线):

在此输入图像描述

import matplotlib.pyplot as plt

ax1 = plt.subplot(231)
ax2 = plt.subplot(232)
ax3 = plt.subplot(233)
ax4 = plt.subplot(234)
ax5 = plt.subplot(236)

plt.show()
Run Code Online (Sandbox Code Playgroud)

当前渲染

python matplotlib

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