好吧,我知道如何直接用图形创建图形时为图形添加颜色条matplotlib.pyplot.plt
.
from matplotlib.colors import LogNorm
import matplotlib.pyplot as plt
import numpy as np
# normal distribution center at x=0 and y=5
x = np.random.randn(100000)
y = np.random.randn(100000) + 5
# This works
plt.figure()
plt.hist2d(x, y, bins=40, norm=LogNorm())
plt.colorbar()
Run Code Online (Sandbox Code Playgroud)
但是为什么以下不起作用,我需要添加什么colorbar(..)
才能使其工作.
fig, ax = plt.subplots()
ax.hist2d(x, y, bins=40, norm=LogNorm())
fig.colorbar()
# TypeError: colorbar() missing 1 required positional argument: 'mappable'
fig, ax = plt.subplots()
ax.hist2d(x, y, bins=40, norm=LogNorm())
fig.colorbar(ax)
# AttributeError: 'AxesSubplot' object has no attribute 'autoscale_None'
fig, ax …
Run Code Online (Sandbox Code Playgroud) 不幸的是,我自己没有找到解决方案.如何使用例如matplotlib/pandas在python中创建Manhattan图.问题是在这些图中,x轴是离散的.
from pandas import DataFrame
from scipy.stats import uniform
from scipy.stats import randint
import numpy as np
# some sample data
df = DataFrame({'gene' : ['gene-%i' % i for i in np.arange(1000)],
'pvalue' : uniform.rvs(size=1000),
'chromosome' : ['ch-%i' % i for i in randint.rvs(0,12,size=1000)]})
# -log_10(pvalue)
df['minuslog10pvalue'] = -np.log10(df.pvalue)
df = df.sort_values('chromosome')
# How to plot gene vs. -log10(pvalue) and colour it by chromosome?
Run Code Online (Sandbox Code Playgroud) 说,我已经给出了一个DataFrame,其中大多数列都是分类数据.
> data.head()
age risk sex smoking
0 28 no male no
1 58 no female no
2 27 no male yes
3 26 no male no
4 29 yes female yes
Run Code Online (Sandbox Code Playgroud)
我想通过这些分类变量的键值对字典对这些数据进行子集化.
tmp = {'risk':'no', 'smoking':'yes', 'sex':'female'}
Run Code Online (Sandbox Code Playgroud)
因此,我想拥有以下子集.
data[ (data.risk == 'no') & (data.smoking == 'yes') & (data.sex == 'female')]
Run Code Online (Sandbox Code Playgroud)
我想做的是:
data[tmp]
Run Code Online (Sandbox Code Playgroud)
这样做最蟒蛇/熊猫的方法是什么?
最小的例子:
import numpy as np
import pandas as pd
from pandas import Series, DataFrame
x = Series(random.randint(0,2,50), dtype='category')
x.cat.categories = ['no', 'yes']
y = Series(random.randint(0,2,50), dtype='category') …
Run Code Online (Sandbox Code Playgroud) 我想和knitr一起使用python.但是,python块似乎单独进行评估,并且变量定义在块之间丢失.
怎么解决这个?
最小的例子:
---
title: "Minimal example"
---
With a print statement.
```{r hello}
x = 'Hello, Python World!'
print(x)
```
Without a print statement.
```{r world}
print(x)
```
Run Code Online (Sandbox Code Playgroud)
---
title: "Minimal example"
---
With a print statement.
```python
x = 'Hello, Python World!'
print(x)
```
```
Hello, Python World!
```
Without a print statement.
```python
print(x)
```
```
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'x' is not defined
```
Run Code Online (Sandbox Code Playgroud)
我有一个数据框df
:
> df\n\n para0 para1 para2\n0 17.439020 True high\n1 19.757758 True high\n2 12.434424 True medium\n3 14.789654 True low\n4 14.131464 False high\n5 9.900233 True high\n6 10.977869 False low\n7 8.004251 True medium\n8 11.468420 False low\n9 12.764453 False high\n
Run Code Online (Sandbox Code Playgroud)\n其中每一行都包含函数的参数集合\n foobar
:
def foobar(r):\n """ r is a row of df, does something, and it takes a long time"""\n if r.para1:\n x = r.para2\n else:\n x = 'low'\n return int(r.para0), (r.Index+13)%3 == 0, x\n
Run Code Online (Sandbox Code Playgroud)\n我想应用 …
我正在使用Vim-R-plugin编辑包含markdown和R-code块的文件,以便可以使用knitr编译文件.文件类型为:RMD.我启用了拼写检查.如何禁用代码块中的拼写检查?