我想使用matplotlib绘制一个具有一个对数轴的图形.
我一直在阅读文档,但无法弄清楚语法.我知道它可能就像'scale=linear'在情节论证中那样简单,但我似乎无法做到正确
示例程序:
import pylab
import matplotlib.pyplot as plt
a = [pow(10, i) for i in range(10)]
fig = plt.figure()
ax = fig.add_subplot(2, 1, 1)
line, = ax.plot(a, color='blue', lw=2)
pylab.show()
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用scikit-learn LabelEncoder来编码DataFrame字符串标签的大熊猫.由于数据框有很多(50+)列,我想避免LabelEncoder为每列创建一个对象; 我宁愿只有一个大LabelEncoder对象适用于我的所有数据列.
投掷整DataFrame到LabelEncoder创建下面的错误.请记住,我在这里使用虚拟数据; 实际上我正在处理大约50列字符串标记数据,因此需要一个不按名称引用任何列的解决方案.
import pandas
from sklearn import preprocessing
df = pandas.DataFrame({
'pets': ['cat', 'dog', 'cat', 'monkey', 'dog', 'dog'],
'owner': ['Champ', 'Ron', 'Brick', 'Champ', 'Veronica', 'Ron'],
'location': ['San_Diego', 'New_York', 'New_York', 'San_Diego', 'San_Diego',
'New_York']
})
le = preprocessing.LabelEncoder()
le.fit(df)
Run Code Online (Sandbox Code Playgroud)
回溯(最近一次调用最后一次):文件"",第1行,在文件"/Users/bbalin/anaconda/lib/python2.7/site-packages/sklearn/preprocessing/label.py",第103行,in y y = column_or_1d(Y,警告=真)文件 "/Users/bbalin/anaconda/lib/python2.7/site-packages/sklearn/utils/validation.py",线306,在column_or_1d提高ValueError异常("坏输入形状{ 0.".format(shape))ValueError:输入形状错误(6,3)
有关如何解决这个问题的任何想法?
这是我的R代码.功能定义为:
f <- function(x, T) {
10 * sin(0.3 * x) * sin(1.3 * x ^ 2) + 0.001 * x ^ 3 + 0.2 * x + 80
}
g <- function(x, T, f=f) {
exp(-f(x) / T)
}
test <- function(g=g, T=1) {
g(1, T)
}
Run Code Online (Sandbox Code Playgroud)
运行错误是:
> test()test()中的
错误:
承诺已经在评估中:递归默认参数引用或早期问题?
如果我替代的定义f在的g,那么错误消失.
我想知道错误是什么?如何纠正它,如果没有替代的定义f在的g?谢谢!
更新:
谢谢!两个问题:
(1)如果函数test进一步论证f,你会添加类似的东西test <- function(g.=g, T=1, f..=f){ g.(1,T, f.=f..) }吗?在递归更多的情况下,添加更多是一个好的和安全的做法. …
我如何忽略ggplot2 boxplot中的异常值?我不是简单地希望它们消失(即outlier.size = 0),但是我希望它们被忽略,以便y轴缩放以显示第1 /第3百分位数.我的异常值导致"盒子"缩小,实际上是一条线.有一些技巧可以解决这个问题吗?
编辑 这是一个例子:
y = c(.01, .02, .03, .04, .05, .06, .07, .08, .09, .5, -.6)
qplot(1, y, geom="boxplot")
Run Code Online (Sandbox Code Playgroud)
这显然很简单,但作为一个笨拙的新人我会陷入困境.
我有一个CSV文件,其中包含3个列,State,Office ID和该办公室的Sales.
我想计算某个州的每个办公室的销售百分比(每个州的所有百分比总和为100%).
df = pd.DataFrame({'state': ['CA', 'WA', 'CO', 'AZ'] * 3,
'office_id': range(1, 7) * 2,
'sales': [np.random.randint(100000, 999999)
for _ in range(12)]})
df.groupby(['state', 'office_id']).agg({'sales': 'sum'})
Run Code Online (Sandbox Code Playgroud)
返回:
sales
state office_id
AZ 2 839507
4 373917
6 347225
CA 1 798585
3 890850
5 454423
CO 1 819975
3 202969
5 614011
WA 2 163942
4 369858
6 959285
Run Code Online (Sandbox Code Playgroud)
我似乎无法弄清楚如何"高达"的state水平groupby与总起来sales对整个state计算分数.
当我的函数f用变量调用时我想检查var是否是pandas数据帧:
def f(var):
if var == pd.DataFrame():
print "do stuff"
Run Code Online (Sandbox Code Playgroud)
我想解决方案可能很简单,但即便如此
def f(var):
if var.values != None:
print "do stuff"
Run Code Online (Sandbox Code Playgroud)
我无法让它按预期工作.
我被困在一些感觉应该相对容易的事情上.我下面的代码是基于我正在研究的更大项目的示例.我没有理由发布所有细节,所以请接受我带来的数据结构.
基本上,我正在创建一个条形图,我只是想弄清楚如何在条形图上添加值标签(在条形图的中心,或者在它上面).一直在寻找网络上的样本,但没有成功实现我自己的代码.我相信解决方案要么是'text',要么是'annotate',但是我:a)不知道使用哪一个(一般来说,还没弄清楚何时使用哪个).b)无法看到要么呈现价值标签.非常感谢您的帮助,我的代码如下.提前致谢!
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
pd.set_option('display.mpl_style', 'default')
%matplotlib inline
# Bring some raw data.
frequencies = [6, 16, 75, 160, 244, 260, 145, 73, 16, 4, 1]
# In my original code I create a series and run on that,
# so for consistency I create a series from the list.
freq_series = pd.Series.from_array(frequencies)
x_labels = [108300.0, 110540.0, 112780.0, 115020.0, 117260.0, 119500.0,
121740.0, 123980.0, 126220.0, 128460.0, 130700.0]
# Plot the figure. …Run Code Online (Sandbox Code Playgroud) 看起来很漂亮但是无法在网上找到有用的东西.
我都试过sns.boxplot('Day', 'Count', data= gg).title('lalala')和sns.boxplot('Day', 'Count', data= gg).suptitle('lalala').没有用.我想这可能是因为我也在使用matplotlib.
在表演之后groupby.sum(),DataFrame我在尝试制作我想要的情节时遇到了一些麻烦.

如何kind='bar'为每个创建一个子图()Code,其中x轴是Month和,条是ColA和ColB?
我试图计算我的数据帧中每种类型的行的重复项.例如,假设我在pandas中有一个数据帧,如下所示:
df = pd.DataFrame({'one': pd.Series([1., 1, 1]),
'two': pd.Series([1., 2., 1])})
Run Code Online (Sandbox Code Playgroud)
我得到一个看起来像这样的df:
one two
0 1 1
1 1 2
2 1 1
Run Code Online (Sandbox Code Playgroud)
我想第一步是找到所有不同的唯一行,我这样做:
df.drop_duplicates()
Run Code Online (Sandbox Code Playgroud)
这给了我以下df:
one two
0 1 1
1 1 2
Run Code Online (Sandbox Code Playgroud)
现在我想从上面的df([1 1]和[1 2])中获取每一行,并计算每个在初始df中的次数.我的结果看起来像这样:
Row Count
[1 1] 2
[1 2] 1
Run Code Online (Sandbox Code Playgroud)
我该怎么办呢?
编辑:
这是一个更大的例子,使其更清晰:
df = pd.DataFrame({'one': pd.Series([True, True, True, False]),
'two': pd.Series([True, False, False, True]),
'three': pd.Series([True, False, False, False])})
Run Code Online (Sandbox Code Playgroud)
给我:
one three two
0 True True True
1 True False False
2 True False …Run Code Online (Sandbox Code Playgroud) pandas ×7
python ×7
matplotlib ×4
r ×2
ggplot2 ×1
logarithm ×1
multi-index ×1
python-2.7 ×1
scale ×1
scikit-learn ×1
seaborn ×1