我正在尝试使用Matplotlib制作两套箱形图.我想要用不同的颜色填充(以及点和胡须)的每组盒子图.因此,情节基本上会有两种颜色
我的代码在下面,如果你可以帮助制作这些彩色图表会很棒.d0并且d1是每个数据列表的列表.我想要用d0一种颜色的数据制作的箱形图集,以及用d1另一种颜色的数据制作的箱形图集.
plt.boxplot(d0, widths = 0.1)
plt.boxplot(d1, widths = 0.1)
Run Code Online (Sandbox Code Playgroud) 我想在课堂上使用Pool,但似乎有问题.我的代码很长,我创建了一个小型演示变体来说明问题.如果你能给我一个下面代码的变体,那就太棒了.
from multiprocessing import Pool
class SeriesInstance(object):
def __init__(self):
self.numbers = [1,2,3]
def F(self, x):
return x * x
def run(self):
p = Pool()
print p.map(self.F, self.numbers)
ins = SeriesInstance()
ins.run()
Run Code Online (Sandbox Code Playgroud)
输出:
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib64/python2.7/threading.py", line 551, in __bootstrap_inner
self.run()
File "/usr/lib64/python2.7/threading.py", line 504, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib64/python2.7/multiprocessing/pool.py", line 319, in _handle_tasks
put(task)
PicklingError: Can't pickle <type 'instancemethod'>: attribute lookup __builtin__.instancemethod failed
Run Code Online (Sandbox Code Playgroud)
然后挂起.
我试图使用Python的scipy.optimize最大化以下功能.然而,经过大量的尝试,它似乎没有用.该函数和我的代码粘贴在下面.谢谢你的帮助!
问题
Maximize [sum (x_i / y_i)**gamma]**(1/gamma)
subject to the constraint sum x_i = 1; x_i is in the interval (0,1).
Run Code Online (Sandbox Code Playgroud)
x是一个选择变量的向量; y是参数的矢量; gamma是一个参数.在x小号必须总和为1.每个x必须在区间(0,1).
码
def objective_function(x, y):
sum_contributions = 0
gamma = 0.2
for count in xrange(len(x)):
sum_contributions += (x[count] / y[count]) ** gamma
value = math.pow(sum_contributions, 1 / gamma)
return -value
cons = ({'type': 'eq', 'fun': lambda x: np.array([sum(x) - 1])})
y = [0.5, 0.3, 0.2]
initial_x = [0.2, 0.3, 0.5] …Run Code Online (Sandbox Code Playgroud) 我希望你一切都好.
我正在使用Matplotlib绘制直方图.我希望直方图的颜色是"天蓝色".但数据重叠,并产生一个近乎黑色的直方图.
谢谢你的帮助
plt.hist(data, color = "skyblue")
Run Code Online (Sandbox Code Playgroud)
我试图安装Pandas有pip,但遇到了一个问题.以下是详细信息:
Mac OS Sierra
which python => /usr/bin/python
python --version => Python 2.7.10
Inside "/System/Library/Frameworks/Python.framework/Versions" there is the following
2.3 2.5 2.6 2.7 Current
Run Code Online (Sandbox Code Playgroud)
我希望Python 2.7.10在"/ usr/bin/python"中链接pandas
当我这样做时pip install pandas,我收到以下错误消息:
Collecting pandas
Using cached pandas-0.19.2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Requirement already satisfied: pytz>=2011k in
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from pandas)
Requirement already satisfied: python-dateutil in
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from pandas)
Requirement already satisfied: numpy>=1.7.0 in
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from pandas)
Installing collected packages: pandas
Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip-9.0.1-
py2.7.egg/pip/basecommand.py", …Run Code Online (Sandbox Code Playgroud) 我想使用两个数据集制作一个箱线图。每一组都是一个浮点数列表。A和B是两个数据集的示例
A = []
B = []
for i in xrange(10):
l = [random.random() for i in xrange(100)]
m = [random.random() for i in xrange(100)]
A.append(l)
B.append(m)
Run Code Online (Sandbox Code Playgroud)
我希望A和B的方框图显示为彼此相邻,而不是彼此相邻。另外,我希望在不同的x值之间或更细的盒子之间留出更多的空隙。我的代码在下面,它产生的图也在下面(当前代码将A放在B的顶部)。感谢您的帮助。
def draw_plot(data, edge_color, fill_color):
bp = ax.boxplot(data, patch_artist=True)
for element in ['boxes', 'whiskers', 'fliers', 'medians', 'caps']:
plt.setp(bp[element], color=edge_color)
plt.xticks(xrange(11))
for patch in bp['boxes']:
patch.set(facecolor=fill_color)
fig, ax = plt.subplots()
draw_plot(A, "tomato", "white")
draw_plot(B, "skyblue", "white")
plt.savefig('sample_box.png', bbox_inches='tight')
plt.close()
Run Code Online (Sandbox Code Playgroud)
我想在一个文件中写一个Python字典列表.但是,我需要字典(和其中的列表)保持字典,即当我加载文件进行处理时,我希望它们使用字典而不必使用字符串.
这是我的示例代码,它将数据写为字符串,有没有办法保留原始Python数据结构(在实际代码中,列表数据有数百个字典,每个字典可能有数百个列表作为值).由于多种原因(其中一个是文件需要人类可读),我不能简单地腌制数据.
import csv
import pandas as pd
def write_csv_file(data, iteration):
with open('%s.csv' % 'name', 'wb') as data_csv:
writer_data = csv.writer(data_csv, delimiter=',')
for d in data:
writer_data.writerow([iteration] + [d])
data = [{'a':1, 'b':2}, {'e':[1], 'f':[2,10]}]
iteration = 1
write_csv_file(data, iteration)
Run Code Online (Sandbox Code Playgroud)
目前,我使用pandas以下列方式读取数据文件以处理数据.
d = pd.read_csv('name.csv')
d = pd.DataFrame(d)
Run Code Online (Sandbox Code Playgroud) 我想从txt文件编写和读取Python数组。我知道如何编写它,但是读取数组需要我提供有关数组长度的参数。我没有提前数组的长度,有没有一种方法可以读取数组而不计算其长度。我的工作代码如下。如果我在a.fromfile中提供2作为第二个参数,它将读取数组的第一个元素,我希望读取所有元素(基本上是要重新创建的数组)。
from __future__ import division
from array import array
L = [1,2,3,4]
indexes = array('I', L)
with open('indexes.txt', 'w') as fileW:
indexes.tofile(fileW)
a = array('I', [])
with open('indexes.txt', 'r') as fileR:
a.fromfile(fileR,1)
Run Code Online (Sandbox Code Playgroud) python ×8
matplotlib ×3
colors ×2
arrays ×1
box ×1
boxplot ×1
class ×1
csv ×1
dictionary ×1
histogram ×1
jsonpickle ×1
macos ×1
optimization ×1
pandas ×1
pickle ×1
pip ×1
plot ×1
pool ×1
scipy ×1