小编joe*_*lom的帖子

使用Seaborn,如何将点图中的所有元素显示在violoinplot的元素上方?

使用Seaborn 0.6.0,我试图覆盖pointplot一个violinplot.我的问题是,如下图所示,来自各个观察结果的'棒' violinplot被绘制在标记之上pointplot.

import seaborn as sns
import matplotlib.pyplot as plt

fig, ax = plt.subplots(1, figsize=[12,8])
sns.violinplot(x="day", y="total_bill", hue="smoker", data=tips,
               split=True, inner='stick', ax=ax, palette=['white']*2)
sns.pointplot(x="day", y='total_bill', hue="smoker",
                   data=tips, dodge=0.3, ax=ax, join=False)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

仔细观察这个图,看起来绿色的误差栏是在violoin棒上方(周六看),但蓝色的误差条,蓝色和绿色的点都画在小提琴棒的下方.

我尝试将zorder两种功能的不同组合传递给它,但这并没有改善情节外观.我能做些什么来让点图中的所有元素出现在violoinplot的所有元素之上?

python matplotlib z-order seaborn

4
推荐指数
2
解决办法
2785
查看次数

在Python中将长方法链分成多行

我正在学习Python和Pandas,但是我经常遇到很多方法调用。我知道如何以一种编译的方式破坏列表和操作符链,但是我找不到以一种不作弊的方式破坏方法链的方法。

在Google中有很多分解运算符链和列表的示例,但是我找不到适合方法链的任何东西。

在Python 3中将一长串方法调用分成多行的最佳方法是什么?

像这样说一行:

t_values = df_grouped_by_day.sort_values('day_of_week').groupby(['day_of_week', 'day_of_week_name'])['Show_up'].apply(lambda sample: ttest_ind(population, sample)).reset_index()
Run Code Online (Sandbox Code Playgroud)

python python-3.x pandas

4
推荐指数
2
解决办法
281
查看次数

MATLAB - 将绘图像素化并将其制作成热图

我有一个带有x和y坐标的矩阵以及每个数据点的温度值.当我在散点图中绘制它时,一些数据点会使其他数据点模糊,因此,该图不能真实地表示我的数据集中温度如何变化.

为了解决这个问题,我想降低图表的分辨率并创建像素,这些像素代表像素区域内所有数据点的平均温度.另一种思考问题的方法是我需要将网格放在当前图上并平均网格的每个网段内的值.

我找到了这个线程 - 使用散点数据集在MatPlotLib中生成热图 - 它显示了如何使用python来实现我想要的最终结果.但是,我目前的代码是在MATLAB中,即使我尝试了不同的建议,如热图,轮廓f和图像c,我也无法得到我想要的结果.

matlab heatmap

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

如何在同一图中使用seaborn pointplot和violinplot?(改变xticks和pointplot的标记)

我正在尝试创建小提琴图,显示平均值的置信区间.我认为这样做的一个简单方法是在小提琴图上绘制一个点图,但这不起作用,因为他们似乎使用不同的xaxis索引,如下例所示:

import matplotlib.pyplot as plt
import seaborn as sns   

titanic = sns.load_dataset("titanic")
titanic.dropna(inplace=True)
fig, (ax1,ax2,ax3) = plt.subplots(1,3, sharey=True, figsize=(12,4))
#ax1
sns.pointplot("who", "age", data=titanic, join=False,n_boot=10, ax=ax1)
#ax2
sns.violinplot(titanic.age, groupby=titanic.who, ax=ax2)
#ax3
sns.pointplot("who", "age", data=titanic, join=False, n_boot=10, ax=ax3)
sns.violinplot(titanic.age, groupby=titanic.who, ax=ax3)
ax3.set_xlim([-0.5,4])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

print(ax1.get_xticks(), ax2.get_xticks())
Run Code Online (Sandbox Code Playgroud)

给出:[0 1 2] [1 2 3]

为什么这些图不会将相同的xtick数字分配给'who'变量,有什么方法可以改变它?

我也想知道无论如何我都可以改变点图的标记,因为正如你在图中看到的那样,这个点太大了,所以它覆盖了整个置信区间.如果可能的话,我想要一条水平线.

python matplotlib seaborn

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

sklearn classification_report,输入来自pandas dataframe prduces:"TypeError:并非在字符串格式化期间转换所有参数"

我正在尝试运行sklearn.metrics.classification_report,我的数据在Pandas数据帧中.数据框df_joined看起来像这样,有100行:

Timestamp    Label       Pred
2016-10-05   29.75  30.781430
2016-10-06   30.35  31.379146
2016-10-07   31.59  31.174824
2017-02-13   29.63  29.875497
2017-02-14   29.60  29.923161
2017-02-15   30.22  30.257284
2017-02-16   30.12  30.374257
2017-02-17   30.09  30.357196
2017-02-20   31.03  30.971070
2017-02-21   31.05  30.930189
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试打印classification_report

print 'Classification Report:', '\n', sklearn.metrics.classification_report(df_joined[label],df_joined['Pred'] )
Run Code Online (Sandbox Code Playgroud)

我收到错误:

文件"\ Python\WinPython-32bit-2.7.10.3\python-2.7.10\lib\site-packages\sklearn\utils\multiclass.py",第106行,在unique_labels中引发ValueError("未知标签类型:%r" %ys)

TypeError:并非在字符串格式化期间转换所有参数

我一直试图使用,sklearn.metrics.classification_report(df_joined[label].values, df_joined['Pred'].values)但它产生相同的错误.

有人知道这是从哪里来的?

python-2.7 pandas scikit-learn

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

OpenCV:完成后如何重新启动视频?

我正在播放视频文件,但播放完后如何再次播放?

哈维尔

c c++ python opencv

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

有没有办法用分箱数据反转 Altair 等值区域图的配色方案?

因此,我尝试使用 Altair 中的分箱数据创建县级分区统计图。我可以使用 bin 函数,但无法反转配色方案的方向。如果我使用以下参数,我可以使用非分箱数据更改配色方案的方向:

sort="descending"
Run Code Online (Sandbox Code Playgroud)

使用分箱数据,它不会出现错误,但排序参数不会执行任何操作,这是我一直在使用 vega-lite 画廊示例地图搞乱的完整代码:

import altair as alt
from vega_datasets import data

counties = alt.topo_feature(data.us_10m.url, 'counties')
source = data.unemployment.url

alt.Chart(counties).mark_geoshape().encode(
    color=alt.Color('rate:Q', bin=alt.Bin(maxbins=7), sort="descending", scale=alt.Scale(scheme='yelloworangered'))
).transform_lookup(
    lookup='id',
    from_=alt.LookupData(source, 'id', ['rate'])
).project(
    type='albersUsa'
).properties(
    width=500,
    height=300
)
Run Code Online (Sandbox Code Playgroud)

有没有办法用装箱数据反转配色方案?在这个例子中,我想要的是将失业率较高的县设为黄色,失业率较低的县设为红色。

python vega choropleth vega-lite altair

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

如何替换 Altair 中的轴标签?

我想将轴标签从 [0,0.5,1] 更改为 ['infrequent','average','frequent'] ,如下所示: 在此输入图像描述

我尝试按如下方式进行更改,但它不起作用。

alt.Chart(df).mark_circle().encode(
    alt.X('x:Q',
          axis=alt.Axis(values=['infrequent','average','frequent']),title="A's frequency"),
    alt.Y('y:Q',
          axis=alt.Axis(values=['infrequent','average','frequent']),title="B's frequency"),
    color=alt.Color('s:Q',scale=alt.Scale(domain=[0, 1],scheme="redyellowblue")),
    tooltip=['term',    
             alt.Tooltip('cat:Q', title="Occurence in A"),
             alt.Tooltip('ncat:Q', title="Occurence in B"),
             alt.Tooltip('s:Q', title="Score close to A",format='.2')]
).properties(
    width=300,
    height=300
)
Run Code Online (Sandbox Code Playgroud)

变更后的图表如下: 在此输入图像描述

有人能给我一些建议吗?提前致谢。

python altair

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