我只能用一个非常大的数据集可靠地重建这个问题,所以我将整个代码粘贴到pastebin 这里是没有数据部分的代码:
# read tmp from the pastebin
library(ggplot2)
plt <- ggplot(tmp, aes(region, score))
plt1 <- plt + geom_violin(aes(region, score), scale='width', trim=F) + ylim(0, 1) + ggtitle('with ylim')
plt2 <- plt + geom_violin(aes(region, score), scale='width', trim=F) + ggtitle('without ylim')
Run Code Online (Sandbox Code Playgroud)
设置此图的y限制会产生相当难看的"小提琴":


这是什么,为什么会发生这种情况以及如何避免这个丑陋的问题呢?
BTW,设置trim=T解决了问题.
>>> import numpy as np
>>> a = np.array(['zero', 'one', 'two', 'three'])
>>> a[1] = 'thirteen'
>>> print a
['zero' 'thirt' 'two' 'three']
>>>
Run Code Online (Sandbox Code Playgroud)
如您所见,第二个元素已被截断为原始数组中的最大字符数.
有可能解决这个问题吗?
在以下代码中:
a = 'a'
tup = ('tu', 'p')
b = 'b'
print 'a: %s, t[0]: %s, t[1]: %s, b:%s'%(a, tup[0], tup[1], b)
Run Code Online (Sandbox Code Playgroud)
我如何"扩展"(无法找出更好的动词),tup以便我不必明确列出其所有元素?
注意我不想打印tup本身,但它的个别元素.换句话说,以下代码不是我正在寻找的
>>> print 'a: %s, tup: %s, b: %s' % (a, tup, b)
a: a, tup: ('tu', 'p'), b: b
Run Code Online (Sandbox Code Playgroud)
上面的代码已打印tup,但我想独立打印它的元素,元素之间有一些文字.
以下不起作用:
print 'a: %s, t[0]: %s, t[1]: %s, b:%s'%(a, tup, b)
In [114]: print '%s, %s, %s, %s'%(a, tup, b)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
TypeError: not …Run Code Online (Sandbox Code Playgroud) 我不喜欢Y轴的垂直标签.因此,我倾向于:
plt.ylabel('horizontal label',
rotation=0)
Run Code Online (Sandbox Code Playgroud)
这导致一个很好的标签:
但是,如果所需标签包含多行,则结果不是最理想的:
plt.ylabel('horizontal\nmultiline label',
rotation=0, ha='right')
Run Code Online (Sandbox Code Playgroud)
改为ha='left'不做正确的工作
有没有一种简单的方法来实现这一目标:
dataclasses_json is a library that provides JSON capabilities to python's data classes. I noticed that overriding to_dict method has no effect. Here's an example:
@dataclass_json
@dataclass
class Message2:
message: str
weight: int
def to_dict(self, encode_json=False):
print('Custom to_dict')
ret = {'MESSAGE': self.message, 'WEIGHT': self.weight}
return ret
m2 = Message2('m2', 2)
print(m2.to_dict())
Run Code Online (Sandbox Code Playgroud)
The code prints the following:
{'message': 'm2', 'weight': 2}
While I was expecting
Custom to_dict
{'MESSAGE': 'm2', 'WEIGHT': 2}
Run Code Online (Sandbox Code Playgroud)
If I remove the @dataclass_json line, I get the desired output. …
我有一个python对象,其中一堆函数需要在执行结束时执行相同的操作,就在return语句之前.例如:
def MyClass(object):
def __init__(self):
pass
def update_everything(self):
'''update everything'''
pass
def f1(self):
#do stuff
self.update_everything()
return result
def f2(self):
#do stuff
self.update_everything()
return result
def f3(self):
#do stuff
self.update_everything()
return result
Run Code Online (Sandbox Code Playgroud)
除了每个函数末尾的显式调用之外,最好的(pythonic?)方法是什么?
如何将Cypher查询的结果加载到igraphpython中,保留所有边缘和顶点属性?
请考虑以下代码及其输出:
#!/usr/bin/perl -w
use strict;
use Data::Dumper;
my $HOURS_PER_DAY = 24.0 * 1.0;
my $BSA = 1.7 * 1.0;
my $MCG_PER_MG = 1000.0 * 1.0;
my $HOURS_DURATION = 20.0 * $HOURS_PER_DAY;
my $dummy = $HOURS_PER_DAY * $BSA * $MCG_PER_MG * $HOURS_DURATION;
print Dumper($HOURS_PER_DAY);
print Dumper( $BSA);
print Dumper( $MCG_PER_MG);
print Dumper( $HOURS_DURATION );
Run Code Online (Sandbox Code Playgroud)
$VAR1 = 24;
$VAR1 = '1.7';
$VAR1 = 1000;
$VAR1 = 480;
Run Code Online (Sandbox Code Playgroud)
如您所见,第二个变量被视为字符串,而第一个和第四个变量被视为数字.任何人都知道底层逻辑是什么?
编辑添加的算术计算并不能完全解决问题(参见$ BSA变量).
$ perl -v
This is perl, v5.10.0 built for …Run Code Online (Sandbox Code Playgroud)