使用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和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) 我有一个带有x和y坐标的矩阵以及每个数据点的温度值.当我在散点图中绘制它时,一些数据点会使其他数据点模糊,因此,该图不能真实地表示我的数据集中温度如何变化.
为了解决这个问题,我想降低图表的分辨率并创建像素,这些像素代表像素区域内所有数据点的平均温度.另一种思考问题的方法是我需要将网格放在当前图上并平均网格的每个网段内的值.
我找到了这个线程 - 使用散点数据集在MatPlotLib中生成热图 - 它显示了如何使用python来实现我想要的最终结果.但是,我目前的代码是在MATLAB中,即使我尝试了不同的建议,如热图,轮廓f和图像c,我也无法得到我想要的结果.
我正在尝试创建小提琴图,显示平均值的置信区间.我认为这样做的一个简单方法是在小提琴图上绘制一个点图,但这不起作用,因为他们似乎使用不同的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'变量,有什么方法可以改变它?
我也想知道无论如何我都可以改变点图的标记,因为正如你在图中看到的那样,这个点太大了,所以它覆盖了整个置信区间.如果可能的话,我想要一条水平线.
我正在尝试运行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)但它产生相同的错误.
有人知道这是从哪里来的?
因此,我尝试使用 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)
有没有办法用装箱数据反转配色方案?在这个例子中,我想要的是将失业率较高的县设为黄色,失业率较低的县设为红色。
我想将轴标签从 [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 ×6
altair ×2
matplotlib ×2
pandas ×2
seaborn ×2
c ×1
c++ ×1
choropleth ×1
heatmap ×1
matlab ×1
opencv ×1
python-2.7 ×1
python-3.x ×1
scikit-learn ×1
vega ×1
vega-lite ×1
z-order ×1