小编Fla*_*bes的帖子

用Python绘制二维核密度估计

我想绘制2D核密度估计.我发现seaborn包在这里非常有用.但是,经过长时间的搜索,我无法弄清楚如何使y轴和x轴不透明.另外,如何在轮廓上显示密度值?如果有人可以帮助我,我将非常感激.下面请看我的代码和图表.在此输入图像描述

import numpy as np
import seaborn as sns
import matplotlib.pyplot as pl

Y = np.random.multivariate_normal((0, 0), [[0.8, 0.05], [0.05, 0.7]], 100)
ax = sns.kdeplot(Y, shade = True, cmap = "PuBu")
ax.patch.set_facecolor('white')
ax.collections[0].set_alpha(0)
ax.set_xlabel('$Y_1$', fontsize = 15)
ax.set_ylabel('$Y_0$', fontsize = 15)
pl.xlim(-3, 3)
pl.ylim(-3, 3)
pl.plot([-3, 3], [-3, 3], color = "black", linewidth = 1)
pl.show()
Run Code Online (Sandbox Code Playgroud)

python plot kernel matplotlib seaborn

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

是否可以在Visual Studio解决方案中引用不同的NuGet包版本?

我们是一个由7名成员组成的团队,我们希望使用Visual Studio创建云应用程序(Windows Azure).我们的应用程序托管在GitHub上,因此我们选择使用NuGet包来尽可能保持我们的存储库轻量级.

但是,我们的Visual Studio解决方案中的两个不同项目需要引用Newtonsoft.Json版本4.0.2或Newtonsoft.Json版本4.5.11.

我们尝试为每个项目引用正确的版本,但是我们在构建时遇到了这个错误:

  1. "Newtonsoft.Json.Linq.JObject"类型在未引用的程序集中定义.您必须添加对程序集"Newtonsoft.Json,Version = 4.0.2.0,Culture = neutral,PublicKeyToken = null"的引用.

  2. 无法将类型'Newtonsoft.Json.Linq.JObject'隐式转换为'Newtonsoft.Json.Linq.JObject'

第二个错误表明,即使我们的解决方案中没有项目同时引用这两个版本,两个版本之间也存在冲突.

你有什么想法解决这个问题吗?

谢谢.

PS:以下是我们发现的有关此问题的最相关信息.

http://docs.nuget.org/docs/reference/known-issues

https://stackoverflow.com/search?q=NuGet+multi+packages+version

visual-studio nuget nuget-package

7
推荐指数
1
解决办法
1655
查看次数

使用python获取图像中形状的轮廓(x,y)坐标

我需要用python获得一个矩阵,其中包含下图的轮廓坐标(x,y).

在此输入图像描述

我尝试使用opencv canny探测器并找到轮廓,但我得到了很多轮廓,我不知道如何得到我想要的那个.

import numpy as np
from matplotlib import pyplot as plt
import cv2
#from skimage import measure, feature, io
#from skimage import img_as_ubyte

x1 = 330
xf = 690
y1 = 0
yf = 400

img = cv2.imread('test.tif')
img = img[y1:yf, x1:xf]
edge = cv2.Canny(img, 100, 200)

image, contours, hierarchy = cv2.findContours(edge, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我只需要一个具有轮廓(x,y)坐标的数组.我认为它是在轮廓输出中,cv2.findContours()但我没有找到我想要的轮廓...

我也尝试过这个matplotlib.pyplot.contour功能:

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('test.tif', 0) # read …
Run Code Online (Sandbox Code Playgroud)

python opencv numpy matplotlib

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

使用matplotlib在每个堆叠条上的Y值

对在图表上显示实际值有疑问。我确实有一张印刷图表,需要显示每个堆叠条形图的值。如何显示这些值?

我已经尝试过ax.text功能,但是无法给出预期的结果(如图所示)。由于图表已标准化为1,因此我需要显示每个堆叠条形的实际值(顶部是总数,应将其拆分为每个条形,第一个条形应该有1个数字7,第二个条形应该有3个数字,其中数字41(按每个颜色条的大小划分)。是否有可能做到这一点?

我的代码如何提出多个堆叠的条形图:

def autolabel(rects):
    # attach some text labels
    for rect in rects:
        height = rect.get_height()
        ax.text(rect.get_x()+rect.get_width()/2., 1.05*height, '%d'%int(height),
                ha='center', va='bottom')

p = [] # list of bar properties
def create_subplot(matrix, colors, axis):
    bar_renderers = []
    ind = np.arange(matrix.shape[1])
    bottoms = np.cumsum(np.vstack((np.zeros(matrix.shape[1]), matrix)), axis=0)[:-1]
    for i, row in enumerate(matrix):
        print bottoms[i]
        r = axis.bar(ind, row, width=0.5, color=colors[i], bottom=bottoms[i])
        bar_renderers.append(r)
        autolabel(r)
    #axis.set_title(title,fontsize=28)
    return bar_renderers

p.extend(create_subplot(nauja_matrica,spalvos, ax))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

python charts matplotlib stacked-chart

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

在一个小节中绘制字典词典

我有一本像这样的字典

d = {
    'a' : {'L1':2, 'L2':5, 'L3':8},
    'b' : {'L1':4, 'L2':7, 'L3':10},
    'c' : {'L1':19, 'L2':0, 'L3':1},
}
Run Code Online (Sandbox Code Playgroud)

我想绘制一个图,其中x轴包含我的关键点,每个关键点具有3个对应于L1,L2和L3值的条形图。
总而言之,我的绘图将包含按键分组的9条(所以是3组3条)。

到目前为止,我所能做的就是将字典转换为数据框,然后对每个键使用seaborn的小节,但剩下3种不同的图。

是否可以将所有信息都包含在一个图中?

非常感谢。

python plot dictionary matplotlib bar-chart

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

有没有办法用字符串列表注释散点上的每个点?

我通过使用variable=plt.scatter(test1,test2)wheretest1test2are 对应于 x 和 y 的列表制作了一个散点图。

有没有办法用我创建的字符串列表或可变颜色来注释每个点?

我发现:

for i, txt in enumerate(variablelabel):
    variable.annotate(txt, (test1[i],test2[i]))
Run Code Online (Sandbox Code Playgroud)

wherevariablelabel定义为我的字符串列表。不幸的是,这似乎并没有注释我的散点图。

或者,我发现您可以使用以下类似的代码添加箭头:

ax.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
arrowprops=dict(facecolor='black', shrink=0.05),
ax.set_ylim(-2,2)
plt.show()
Run Code Online (Sandbox Code Playgroud)

但这会产生我不想要的大箭头。我只想要列表中的字符串。

对不起,如果我不是很清楚。

python annotate scatter matplotlib

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