- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 seaborn 0.11,我想绘制一个 seaborn ridge plot
我想在单个图中绘制磁谱数据。所以 y 轴只计算地 block 的数量,x 轴使用 数据。这是我所期望的示例。
这些是不同角度的光谱数据。有什么方法可以在 python 中绘制这样的东西吗?提前致谢。
import matplotlib.pyplot as plt
data = np.loadtxt("0_deg.txt", skiprows=0, dtype=np.float128)
fig, ax = plt.subplots(figsize=(8, 6))
ax.plot(data, markersize=1, label="0° ")
数据是这样的
269.09019 0.10781
269.09208 0.10908
269.09397 0.11928
269.09587 0.11800
269.09776 0.11418
269.09966 0.11545
269.10155 0.11928
269.10344 0.11673
269.10534 0.10781
269.10723 0.10526
269.10913 0.11418
269.11102 0.11418
269.11292 0.11291
269.11481 0.11928
269.11670 0.11928
269.11860 0.12055
269.12049 0.11928
269.12239 0.11928
269.12428 0.11673
269.12618 0.11545
269.12807 0.11545
269.12996 0.11036
269.13186 0.10908
269.13375 0.10144
269.13565 0.10908
269.13754 0.10654
269.13943 0.10399
269.14133 0.10526
269.14322 0.11418
269.14512 0.10908
269.14701 0.10272
269.14891 0.09889
269.15080 0.10526
269.15269 0.09889
269.15459 0.09635
269.15648 0.09889
269.15838 0.10017
269.16027 0.09507
269.16217 0.08998
269.16406 0.09507
269.16595 0.08870
269.16785 0.09252
269.16974 0.09762
269.17164 0.09889
269.17353 0.09507
269.17542 0.10017
269.17732 0.10399
269.17921 0.10144
269.18111 0.09762
269.18300 0.10144
269.18490 0.10144
269.18679 0.09635
269.18868 0.10017
269.19058 0.10399
269.19247 0.10017
269.19437 0.10017
269.19626 0.09889
269.19816 0.10017
269.20005 0.09507
269.20194 0.09635
269.20384 0.09380
269.20573 0.09252
269.20763 0.08998
最佳答案
pathlib
使用.glob
查找目录中的所有文件pandas.DataFrames
的 list
中
-1
处的值作为每组数据的 'label'
列值。此值为 0deg
、10deg
等。
f = WindowsPath('data/CuSo4_10mV_300mS_Amod9.44V_0deg')
作为 pathlib
对象
f.suffix
是 '.44V_0deg'
f.suffix.split('_')[-1]
是 '0deg'
'label'
列,以便可以为每条绘图线识别正确的'intensity'
值。pandas.concat
组合数据帧列表。import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="white", rc={"axes.facecolor": (0, 0, 0, 0)})
# find the local files
p = Path('c:/somepathtofiles') # p = Path.cwd() # for data in the current working directory
files = list(p.glob('*.44V*'))
# load all the data, but create a dataframe in the correct form for a RidgePlot
dfl = list()
for f in files:
v = pd.read_csv(f, sep='\\s+', header=None, usecols=[1])
v.columns = ['intensity']
v['label'] = f.suffix.split('_')[-1]
dfl.append(v)
# combine the list of dataframes into a single dataframe
df = pd.concat(dfl)
# plot
# Initialize the FacetGrid object
pal = sns.cubehelix_palette(len(df.label.unique()), rot=-.25, light=.7)
g = sns.FacetGrid(df, row="label", hue="label", aspect=15, height=.5, palette=pal)
# Draw the densities in a few steps
g.map(sns.kdeplot, "intensity", bw_adjust=.5, clip_on=False, fill=True, alpha=1, linewidth=1.5)
g.map(sns.kdeplot, "intensity", clip_on=False, color="w", lw=2, bw_adjust=.5)
g.map(plt.axhline, y=0, lw=2, clip_on=False)
# Define and use a simple function to label the plot in axes coordinates
def label(x, color, label):
ax = plt.gca()
ax.text(0, .2, label, fontweight="bold", color=color, ha="left", va="center", transform=ax.transAxes)
g.map(label, "intensity")
# Set the subplots to overlap
g.fig.subplots_adjust(hspace=-.25)
# Remove axes details that don't play well with overlap
g.set_titles("")
g.set(yticks=[])
g.despine(bottom=True, left=True)
# uncomment the following line if there's a tight layout warning
# g.fig.tight_layout()
import pandas as pd
import matplotlib.pyplot as plt
from pathlib import Path
###########################################################
# Use if loading the data from the local computer
# create the path to the files
p = Path('c:/somepathtofiles')
# if loading the data from the local computer
# get a generator of all the files
files = p.glob('*.44V*')
# load the files into a dict of pandas.DataFrames
dfd = {f'{file.suffix.split("_")[-1]}': pd.read_csv(file, sep='\\s+', header=None) for file in files}
###########################################################
# Use if loading data from GitHub
# don't use both lines for files.
files = [f'https://raw.githubusercontent.com/mahesh27dx/NPR/master/CuSo4_10mV_300mS_Amod9.44V_{v}deg' for v in range(0, 190, 10)]
# load the files into a dict of pandas.DataFrames
dfd = {f'{file.split("_")[-1]}': pd.read_csv(file, sep='\\s+', header=None) for file in files}
###########################################################
# iterate through the dict
plt.figure(figsize=(10, 8)) # set up plot figure
for k, v in dfd.items():
dfd[k].columns = ['mag_field', 'intensity']
sns.lineplot(x='mag_field', y='intensity', data=v, label=k)
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left')
plt.xlabel('Magnetic Field')
plt.ylabel('Field Intensity')
plt.show()
关于python - 如何绘制 seaborn ridge plot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63927245/
如何从 seaborn 生成的热图中隐藏颜色条 import numpy as np; np.random.seed(0) import seaborn as sns; sns.set_theme()
我正在尝试使用 seaborn 制作热图,但被困在更改特定值的颜色。假设值 0 应该是白色,值 1 应该是灰色,然后使用 cmap 提供的调色板。 试图使用面具,但感到困惑。 import matpl
我想改变散点的大小。 这些都不起作用: sns.relplot(x='columnx', y='columny', hue='cluster', data=df) sns.relplot(x='col
这个问题在这里已经有了答案: What is y axis in seaborn distplot? (3 个答案) 关闭 3 年前。 我正在使用以下语句绘制分布图: a = sns.distplo
我注意到 sns.barplot 使用标准错误作为误差条默认 1 。有办法把它改成SD吗? ax = sns.barplot(x="day", y="tip", data=tips, ci=???)
向 seaborn FacetGrid 中的每个直方图添加表示平均值(或其他集中趋势度量)的点和可变性度量(例如,标准偏差或置信区间)的最佳方法是什么? 结果应该类似于显示的图 here ,但在每个
我正在尝试使用 sns.histplot() 而不是 sns.distplot() 因为我在 colab 中收到以下消息: FutureWarning: distplot is a deprecate
我想绘制 3 个水平条形图,标签作为 y 轴,数据作为 x 轴,我希望每个图都是不同的颜色,并有某种类型的注释,例如星号,这取决于关于数据中某列所表示的重要性,例如: dat = pd.DataFra
根据 seaborn 文档 here seaborn.distplot()已被弃用,向前支持的图是:seaborn.displot()和 seaborn.histplot() . 但是,当我尝试使用
为了使 seaborn.pairplot() 正常工作,在 jupyter notebook 中执行了以下步骤。 /usr/local/lib/python2.7/site-packages/matp
使用 pandas 数据框绘制混淆矩阵时 y 轴两端被切一半? 这就是我得到的: 我使用了这里的代码How can I plot a confusion matrix?使用 pandas 数据框: i
您好,我刚刚为 seaborn 热图创建了自定义 cmap,但是当我想使用它时,它没有显示正确的颜色。我已经一步一步完成了: import seaborn as sns import numpy as
亲爱的,我正在尝试将 kaggle 教程代码应用于 Iris 数据集。 不幸的是,当我执行图表的代码时,我只能看到这个输出而看不到任何图表: matplotlib.axes._subplots.Axe
这个问题在这里已经有了答案: Seaborn plots in a loop (6 个答案) How to plot in multiple subplots (12 个答案) 关闭 1 年前。 我
我正在尝试在 python 中使用 seaborn 绘制直方图。但它给我的只是一个空白数字。 这是我专栏的describe(): 代码: plt.subplots(figsize=(7,7)) sns
如何在seaborn.lineplot中分别设置标记和线条的透明度? 我有一组点,我想画一条连接所有点的线图。我希望线条比标记更透明。如何做到这一点? 这是我的目标: 这是我的代码: import m
我正在使用 seaborn 库在 python 中绘制热图。数据框包含一些缺失值 (NaN)。我希望与这些字段对应的热图单元格是白色的(默认情况下)并且还用字符串 NA 进行注释。但是,如果我看对了,
如何对这个图进行排序以从大到小显示?我尝试使用 sort_values 但不起作用 plt.figure(figsize=(15,8)) sns.countplot(x='arrival_date_m
我的目标是在使用 seaborn 绘制的图上的 y = 0 上绘制一条水平红线:sns.lmplot由 col= 分割或 row= . import numpy as np, seaborn as s
我正在使用seaborn pairplot绘制我的数据点不同维度的散点图。但是,我希望数据点的标记具有与数据点的维度之一相对应的大小。我有以下代码: markersize = 1000* my_dat
我是一名优秀的程序员,十分优秀!