在下面的示例中,我如何使用seaborn.PairGrid()来重现创建的图seaborn.pairplot()?具体来说,我希望对角线分布跨越垂直轴。带白色边框等的标记也很棒。谢谢!
import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset('iris')
# pairplot() example
g = sns.pairplot(iris, kind='scatter', diag_kind='kde')
plt.show()
# PairGrid() example
g = sns.PairGrid(iris)
g.map_diag(sns.kdeplot)
g.map_offdiag(plt.scatter)
plt.show()
Run Code Online (Sandbox Code Playgroud)
我正在绘制经纬度房屋价格的散点图。 我想反转调色板,使红色描绘出最昂贵的房子。
plt.figure(figsize=(12,8))
sns.scatterplot(x='long' ,y='lat' ,data=non_top_1_perc ,hue='price' ,edgecolor=None ,
alpha=0.2,palette='RdYlGn' )
Run Code Online (Sandbox Code Playgroud)
我RelPlot使用 Seaborn 绘制了一个简单的图,它返回了一个Facetgrid对象。我使用的代码如下:
import seaborn as sns
palette = sns.color_palette("rocket_r")
g1 = sns.relplot(
data=df,
x="number_of_weeks", y="avg_streams",
hue="state", col="state",
kind="line", palette=palette,
height=5, aspect=1, facet_kws=dict(sharex=False), col_wrap=3,
)
Run Code Online (Sandbox Code Playgroud)
我正在使用的数据框具有以下结构:
avg_streams date year number_of_weeks state
4 0.104011 31-01 2020 4 it
5 1.211951 07-02 2020 5 it
6 0.559374 14-02 2020 6 it
7 0.304257 21-02 2020 7 it
8 0.199218 28-02 2020 8 it
... ... ... ... ... ...
175 -0.938890 26-06 2020 25 br
176 -0.483821 …Run Code Online (Sandbox Code Playgroud) 我有一个包含基因名称、倍数变化和 p 值的数据框。
我可以用seaborn.heatmap颜色渐变来绘制折叠变化。
如何在 p 值 < 0.05 的特定单元格周围添加条件边框?
我在这里做错了什么?我想创建新的数据框,df并使用日期作为每个新创建的数据框(Emins、FTSE、Stoxx 和 Nikkei)折线图中的 x 轴。
我有一个df从 data.xlsx 创建的名为数据框,它看起来像这样:
Dates ES1 Z 1 VG1 NK1
0 2005-01-04 -0.0126 0.0077 -0.0030 0.0052
1 2005-01-05 -0.0065 -0.0057 0.0007 -0.0095
2 2005-01-06 0.0042 0.0017 0.0051 0.0044
3 2005-01-07 -0.0017 0.0061 0.0010 -0.0009
4 2005-01-11 -0.0065 -0.0040 -0.0147 0.0070
3670 2020-09-16 -0.0046 -0.0065 -0.0003 -0.0009
3671 2020-09-17 -0.0083 -0.0034 -0.0039 -0.0086
3672 2020-09-18 -0.0024 -0.0009 -0.0009 0.0052
3673 2020-09-23 -0.0206 0.0102 0.0022 -0.0013
3674 2020-09-24 0.0021 -0.0136 -0.0073 -0.0116
Run Code Online (Sandbox Code Playgroud)
我df …
我想使用以下代码绘制猫图。
import seaborn as sns
sns.set_theme(style="ticks")
exercise = sns.load_dataset("exercise")
sns.set_style({'axes.grid': True})
g = sns.catplot(x="time", y="pulse", hue="kind", data=exercise)
Run Code Online (Sandbox Code Playgroud)
但这不会绘制垂直网格线。我怎样才能添加它们?
我正在尝试使用seabornpairplot进行一些可视化,并且我需要有正确的对角线Y轴(可见!),根本没有标准化(只是计数)或密度标准化(bin值的总和= 1)。更好的方法是什么?
这就是我正在尝试做的事情:
import numpy as np
import seaborn as sns
import pandas as pd
data = np.random.normal(0,2,[1000,3])
sss = sns.pairplot(pd.DataFrame(data),corner=True)
sss.axes[0][0].yaxis.tick_right()
sss.axes[0][0].get_yaxis().set_visible(True)
sss.axes[0][0].axis('on')
sss.axes[0][0].yaxis.set_label_position("right")
sss.axes[0][0].set_ylabel('Counts')
Run Code Online (Sandbox Code Playgroud)
它给了我下图:
显然,我这里的归一化是错误的(可能是在最大值上归一化的)并且 y 轴线本身丢失了。
我怎么能做出这样的小提琴人物呢?我想包括置信区间
我可以使用下面的代码用四边形绘制分割图,但不能绘制均值和置信度。数据可以在这里找到。https://drive.google.com/file/d/18GrncA2GmJd38tVGZZ5yylR6Cf61XsGp/view?usp=sharing
import matplotlib.pyplot as plt
import seaborn as sns
sns.violinplot(x="six.categories", y="non_poor", hue="year", data=df, split=True,
inner="quart", palette={"2019": "b", "2020": "y"})
sns.despine(left=True)
plt.xticks(np.arange(6),["Nonpoor\nWhite", "Poor\nWhite", "Poor\nBlack", "Nonpoor\nBlack", "Poor\nHispanic", "Nonpoor\nHispanic"])
Run Code Online (Sandbox Code Playgroud) 这是我写的代码:
mydateparser = lambda x: datetime.strptime(x, "%Y-%m-%d")
df = pd.read_csv("Vaderdata.csv",
usecols=['Date','Time','Temp'],
parse_dates=['Date'],
date_parser=mydateparser)
pivot = pd.pivot_table(df, values='Temp',columns='Date',index='Time')
fig, ax = plt.subplots(figsize = (12,6))
clr = sns.color_palette("coolwarm", as_cmap=True)
fig = sns.heatmap(pivot, center = 0,cmap = clr )
plt.show()
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,x 轴的描述性并不强。我希望每个新的月份都有一个带有标签的大勾号,每个新的一周都有一个小勾号。我找到了一些将日期时间格式化为字符串的示例,以便 x 轴至少显示一些内容而不仅仅是零,但我无法找到如何执行我刚才描述的操作。
seaborn ×10
python ×8
matplotlib ×5
conda ×1
date ×1
facet-grid ×1
heatmap ×1
jupyter ×1
line-plot ×1
pandas ×1
pip ×1
python-3.x ×1
subplot ×1
violin-plot ×1