小编sod*_*odd的帖子

在同一个IPython Notebook单元格中创建多个图表

我已经开始使用我的IPython笔记本了

ipython notebook --pylab inline
Run Code Online (Sandbox Code Playgroud)

这是我在一个单元格中的代码

df['korisnika'].plot()
df['osiguranika'].plot()
Run Code Online (Sandbox Code Playgroud)

这工作正常,它将绘制两条线,但在同一图表上.

我想在单独的图表上绘制每一行.如果图表彼此相邻,而不是一个接一个,那将是很好的.

我知道我可以把第二行放在下一个单元格中,然后我会得到两个图表.但我希望这些图表彼此接近,因为它们代表了相同的逻辑单元.

python ipython pandas ipython-notebook

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

Matplotlib散点图传奇

我创建了一个4D散点图来表示特定区域的不同温度.创建图例时,图例会显示正确的符号和颜色,但会在其中添加一条线.我正在使用的代码是:

colors=['b', 'c', 'y', 'm', 'r']
lo = plt.Line2D(range(10), range(10), marker='x', color=colors[0])
ll = plt.Line2D(range(10), range(10), marker='o', color=colors[0])
l = plt.Line2D(range(10), range(10), marker='o',color=colors[1])
a = plt.Line2D(range(10), range(10), marker='o',color=colors[2])
h = plt.Line2D(range(10), range(10), marker='o',color=colors[3])
hh = plt.Line2D(range(10), range(10), marker='o',color=colors[4])
ho = plt.Line2D(range(10), range(10), marker='x', color=colors[4])
plt.legend((lo,ll,l,a, h, hh, ho),('Low Outlier', 'LoLo','Lo', 'Average', 'Hi', 'HiHi', 'High Outlier'),numpoints=1, loc='lower left', ncol=3, fontsize=8)
Run Code Online (Sandbox Code Playgroud)

我试过换Line2DScatterscatter.Scatter返回错误并scatter更改了图表并返回了错误.

有了scatter,我改为range(10)包含数据点的列表.每个列表包含x,y或z变量.

lo = plt.scatter(xLOutlier, yLOutlier, zLOutlier, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib legend scatter-plot

51
推荐指数
3
解决办法
16万
查看次数

Matplotlib,从三个不等长度的数组创建堆积直方图

我想创建一个堆叠直方图.如果我有一个由三个等长数据集组成的二维数组,这很简单.代码和图片如下:

import numpy as np
from matplotlib import pyplot as plt

# create 3 data sets with 1,000 samples
mu, sigma = 200, 25
x = mu + sigma*np.random.randn(1000,3)

#Stack the data
plt.figure()
n, bins, patches = plt.hist(x, 30, stacked=True, normed = True)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,如果我尝试使用具有不同长度的三个数据集的类似代码,则结果是一个直方图覆盖另一个直方图.有什么办法可以用混合长度数据集进行叠加直方图吗?

##Continued from above
###Now as three separate arrays
x1 = mu + sigma*np.random.randn(990,1)
x2 = mu + sigma*np.random.randn(980,1)
x3 = mu + sigma*np.random.randn(1000,1)

#Stack the data
plt.figure()
plt.hist(x1, bins, stacked=True, normed = True)
plt.hist(x2, bins, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

matplotlib是否相当于MATLAB的datacursormode?

在MATLAB中,可以使用datacursormode当用户鼠标悬停时向图形添加注释.在matplotlib中有这样的事吗?或者我需要使用自己的事件来编写matplotlib.text.Annotation

python matplotlib

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

多个imshow-subplots,每个都有colorbar

我希望有一个由四个子图组成的数字.其中两个是通常的线图,其中两个是imshow-images.

我可以将imshow-images格式化为适当的绘图本身,因为它们中的每一个都需要自己的颜色条,修改的轴和另一个轴被移除.然而,对于子绘图来说,这似乎是绝对无用的.任何人都可以帮助我吗?

我用这个用于显示"常规"地块上述数据作为颜色表(由缩放输入阵列i,以[ i, i, i, i, i, i ]用于2D和主叫imshow()用它).

下面的代码首先显示我需要的子图,第二个代码显示我可以做的所有,这是不够的.

#!/usr/bin/env python

import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm

s = { 't':1, 'x':[1,2,3,4,5,6,7,8], 'D':[0.3,0.5,0.2,0.3,0.5,0.5,0.3,0.4] }
width = 40

# how I do it in just one plot
tot = []
for i in range(width):
    tot.append(s['D'])

plt.imshow(tot, norm=LogNorm(vmin=0.001, vmax=1))
plt.colorbar()
plt.axes().axes.get_xaxis().set_visible(False)
plt.yticks([0, 2, 4, 6], [s['x'][0], s['x'][2], s['x'][4], s['x'][6]])

plt.show()


f = plt.figure(figsize=(20,20))

plt.subplot(211)
plt.plot(s['x'], s['D'])
plt.ylim([0, 1])

#colorplot
sp = f.add_subplot(212) …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

cholesky在numpy和scipy之间有什么区别?

我使用Cholesky分解从多维高斯中对随机变量进行采样,并计算随机变量的功率谱.我得到的结果numpy.linalg.cholesky总是在高频下具有比从中获得更高的功率scipy.linalg.cholesky.

这两个函数之间有什么区别可能导致这个结果?哪一个在数值上更稳定?

这是我使用的代码:

n = 2000

m = 10000

c0 = np.exp(-.05*np.arange(n))

C = linalg.toeplitz(c0)

Xn = np.dot(np.random.randn(m,n),np.linalg.cholesky(C))

Xs = np.dot(np.random.randn(m,n),linalg.cholesky(C))

Xnf = np.fft.fft(Xn)

Xsf = np.fft.fft(Xs)

Xnp = np.mean(Xnf*Xnf.conj(),axis=0)

Xsp = np.mean(Xsf*Xsf.conj(),axis=0)
Run Code Online (Sandbox Code Playgroud)

python numpy scipy

16
推荐指数
1
解决办法
5907
查看次数

autofmt_xdate删除所有子图的x轴标签

我用它autofmt_xdate以可读的方式绘制长x轴标签.问题是,当我想要组合不同的子图时,其他子图的x轴标记消失了,我不喜欢下图中最左边的子图(两行高).有没有办法防止autofmt_xdate淬火其他x轴标签?或者还有另一种旋转标签的方法吗?正如你所看到的那样,我也进行了实验xticks和"旋转",但结果并不令人满意,因为标签围绕它们的中心旋转,导致标签混乱.

产生以下情节的脚本:

from matplotlib import pyplot as plt
from numpy import arange
import numpy
from matplotlib import rc

rc("figure",figsize=(15,10))
#rc('figure.subplot',bottom=0.1,hspace=0.1)
rc("legend",fontsize=16)
fig = plt.figure()


Test_Data = numpy.random.normal(size=20)

fig = plt.figure()
Dimension = (2,3)
plt.subplot2grid(Dimension, (0,0),rowspan=2)
plt.plot(Test_Data)
plt.subplot2grid(Dimension, (0,1),colspan=2)
for i,j in zip(Test_Data,arange(len(Test_Data))):
    plt.bar(i,j)
plt.legend(arange(len(Test_Data)))
plt.subplot2grid(Dimension, (1,1),colspan=2)
xticks = [r"%s (%i)" % (a,b) for a,b in zip(Test_Data,Test_Data)]
plt.xticks(arange(len(Test_Data)),xticks)
fig.autofmt_xdate()
plt.ylabel(r'$Some Latex Formula/Divided by some Latex Formula$',fontsize=14)
plt.plot(Test_Data)
#plt.setp(plt.xticks()[1],rotation=30)
plt.tight_layout()
#plt.show()
Run Code Online (Sandbox Code Playgroud)

由脚本创建的图

python matplotlib

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

fill_between给出"ValueError:参数尺寸不兼容"

下面用Python编写的代码将数据从Excel导入到Python,然后使用matplotlib进行绘图.我正在尝试使用该fill_between功能用不同的颜色填充第80行的上方和下方,但它给出了

ValueError: Argument dimensions are incompatible
Run Code Online (Sandbox Code Playgroud)

注意: Excel文件('eegg.xlsx')有4列,682行,包含int数据(0-100).

我认为问题在于调用的where参数fill_between,但我无法解决这个问题.

import xlrd
import numpy
from datetime import time
from pylab import *

workbook = xlrd.open_workbook('eegg.xlsx')
worksheet = workbook.sheet_by_name('Sayfa1')
num_rows = worksheet.nrows - 1
num_cells = worksheet.ncols - 1
curr_row = -1

att=[]
med=[]
for i in [2,3]:
    kolon = worksheet.col(i)
    for x in kolon[1:]:
        d= int(x.value)
        if i==2:
            att.append(d)
        elif i==3:
            med.append(d)

n = len(att)
X = np.linspace(0,n,n,endpoint=True)
Y1 = att …
Run Code Online (Sandbox Code Playgroud)

matplotlib xlrd python-2.7

9
推荐指数
1
解决办法
8741
查看次数

使用matplotlib创建100%堆积面积图

我想知道如何在matplotlib中创建100%堆积面积图.在matplotlib页面,我找不到它的例子.

有人在这里可以告诉我如何实现这一目标吗?

python matplotlib stacked-area-chart

8
推荐指数
1
解决办法
9844
查看次数

更改标记的ticklabel方向和图例位置

我正在使用Python中的pandas从CSV读取数据来绘制条形图.我将CSV读入a DataFrame并使用matplotlib绘制它们.

以下是我的CSV的外观:

SegmentName    Sample1   Sample2   Sample3

Loop1          100       100       100

Loop2          100       100       100
Run Code Online (Sandbox Code Playgroud)
res = DataFrame(pd.read_csv("results.csv", index_col="SegmentName"))
Run Code Online (Sandbox Code Playgroud)

我绘制并将传奇设置为外部.

plt.figure()
ax = res.plot(kind='bar')
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))

plt.savefig("results.jpg")
Run Code Online (Sandbox Code Playgroud)

但是,x轴刻度标签垂直方向,因此我无法读取文本.我外面的传说也被切断了.

我可以将刻度标签的方向更改为水平,然后调整整个图形以使图例可见吗?

在此输入图像描述

python matplotlib pandas

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