标签: line-plot

ggplot 线的选择性标记

总体目标:使用 ggplot 有选择地仅标记最后一个点高于某个 y 值的线。

潜在的函数/包:我知道geom_text()函数和 directlabels 包,但我无法在他们的文档中找到一种方法来按照我上面描述的方式选择性地标记行。

样本数据

ID <- c(rep("ID1", 5), rep("ID2", 5), rep("ID3", 5), rep("ID4", 5), rep("ID5", 5))
Y <- c(1, 2, 3, 4, 5, 
       10, 20, 30, 40, 1, 
       5, 10, 15, 10, 60, 
       50, 30, 20, 25, 10,
       20, 25, 30, 35, 50)
Year <- c(rep(seq(2000 ,2004), 5))
DATA <- data.frame(ID, Year, Y)
Run Code Online (Sandbox Code Playgroud)

绘制数据

ggplot(data=DATA, aes(Year, Y)) + 
  geom_line(aes(y=Y, x=Year, color=ID)) + 
  theme_bw()
Run Code Online (Sandbox Code Playgroud)

阴谋

问题

在上图的情况下,有没有办法使用、 directlabels 或任何其他函数根据 ID 来自动(而不是手动)仅标记最后一个点是(紫色和绿色线)的gg_text() …

plot label r ggplot2 line-plot

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

在 Matplotlib 线图上的标准差之间填充

我有一个线图,它绘制了从 Excel 文件加载的 2 列数据。请参阅绘图: Matplotlib 线图

我想使用函数之间的填充或类似的东西(如图像 2)来显示图中每行(即数据列)的标准差,但是我不知道如何包含它。任何帮助都会很棒。请注意,我对此很陌生...... 我希望我的情节看起来如何

这是我的线图使用的代码:

import pandas as pd
import scipy as sp
from scipy import stats
import numpy as np
import matplotlib.pyplot as plt

Probability_fast_gamma_on_theta = pd.read_excel(r'C:\Users\RL\Excel work\Probability_of_a_theta_cycle_containing_fast_gamma.xlsx')

fig5, ax5=plt.subplots()
plt.plot(Probability_fast_gamma_on_theta.MIA)
plt.plot(Probability_fast_gamma_on_theta.CTL)

plt.grid(False)
plt.ylim(0.0, 0.6)
plt.xlim(0.0, 25)
plt.legend(['MIA', 'CTL'], loc='lower right')

plt.show()
Run Code Online (Sandbox Code Playgroud)

python matplotlib line-plot seaborn

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

绘图意味着与ggplot2的interaction.plot类似

我有一个如下所示的数据框:

        head(length_test)
      S.UNIT          GENRE  PATTERN
    1    105   Conversation THAT_EXT
    2     61   Conversation THAT_EXT
    3    210   Conversation   TO_EXT
    4    196   Conversation   TO_EXT
    5    166 Academic Prose   TO_EXT
    6    152 Academic Prose   TO_EXT
> str(length_test)
'data.frame':   7329 obs. of  3 variables:
 $ S.UNIT : int  105 61 210 196 166 152 152 152 152 150 ...
 $ GENRE  : Factor w/ 5 levels "Academic Prose",..: 2 2 2 2 1 1 1 1 2 2 ...
 $ PATTERN: Factor w/ 6 levels …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 line-plot

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

增加线图中线的最大宽度

我在ggplot2库中使用qplot来创建折线图.我试图改变线的颜色和宽度.但问题是,无论我给参数赋值的是什么,线的宽度似乎都受到约束.在qplot函数中,我也尝试用"size"代替"lwd",但这并没有什么区别.

例如,这些值导致第一个图:

line.x <- c(1,2,3,4,5)
line.y <- c(1,2,3,4,5) 
line.width <- c(1,2,3,4,5) 
line.color <- c(1,2,3,4,5)
qplot(line.x, line.y, geom = 'line', lwd = line.width, colour = line.color) + 
  scale_color_gradientn(colours=rainbow(50)) + 
  theme(legend.position="none")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果我将第4个值更改line.width为40,则只会使其他部分相对较薄:

line.width <- c(1,2,3,40,5)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

再次增加到400具有类似的效果,其中第4段只能扩展到最大宽度:

line.width <- c(1,2,3,400,5)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

作为一个注释,我的实际数据集将有数百个值,看起来更像这样: 在此输入图像描述

有没有办法增加线的最大厚度?

r data-visualization ggplot2 line-plot

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

使用带有线图的 seaborn FacetGrid 中的单位

这是针对我的问题的最小、完整和可验证的玩具数据集:

genes = pd.Series(["Gene1"] * 16 + ["Gene2"] * 16)
conditions = pd.Series(np.tile(np.array(["Condition1"] * 8 + ["Condition2"] * 8), 2))
wellID = pd.Series(np.array(["W1"] * 4 + ["W2"] * 4 + ["W3"] * 4 + ["W4"] * 4 + ["W5"] * 4 + ["W6"] * 4 + ["W7"] * 4 + ["W8"] * 4))
fluo = pd.Series(np.array([np.sort(np.random.logistic(size=4)) for _ in range(8)]).flatten())
cycles = pd.Series(np.tile(np.array([0, 1, 2, 3]), 8))
df = pd.concat([genes, conditions, wellID, cycles, fluo], axis=1)
df.columns = ["Gene", "Condition", "WellID", …
Run Code Online (Sandbox Code Playgroud)

pandas line-plot seaborn facet-grid

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

根据列的值自定义线图标记大小

我有如下数据:

 #df
  df = pd.DataFrame({
               'id': {0: -3, 1: 2, 2: -3, 3: 1},
               'val': {0: 0.4, 1: 0.03, 2: 0.88, 3: 1.3},
               'indicator': {0: 'A', 1: 'A', 2: 'B', 3: 'B'},
               'count': {0: 40000, 1: 5779, 2: 3000, 3: 31090}
              })
df
Run Code Online (Sandbox Code Playgroud)

如果我执行以下代码,我将得到:

 sns.relplot(x = 'id', y = 'val', hue = 'indicator', size = 'count', data = df)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想要一条线连接这些点。但如果我将绘图更改为线图,我将得到任何图表。

sns.lineplot(x = 'id', y = 'val', hue = 'indicator', size = 'count', data = df)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python line-plot seaborn

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

如何在 R 中的线图中添加垂直 abline 到图例或在其上写一些东西?

我使用R中的abline()函数在 x 轴上的某个点添加了一条垂直线(如下图的线图所示),我想为其添加图例或在其上添加一些文本(垂直于 abline)。

那么,可以这样做吗?如果是,那么我该怎么做?

线图示例

plot r legend ggplot2 line-plot

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

将线图添加到 Facetgrid 图中

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)

python matplotlib subplot line-plot seaborn

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

散景线图:绘制大量线时如何分配颜色

我使用 for 循环在 Bokeh 中创建了多线图(代码如下)。

在输出示例中只有两条曲线。在这种情况下,我可以为每条曲线设置颜色列表。但是,如果我需要绘制大量曲线,如何使用散景调色板之一(例如配对)?我想自动执行此操作,以避免每次增加要绘制的行数时都必须制作颜色列表。

import pandas as pd
import numpy as np
from bokeh.core.properties import value
from bokeh.plotting import figure, show
from bokeh.io import output_notebook
from bokeh.models import ColumnDataSource, CDSView, GroupFilter, HoverTool

from bokeh.palettes import Paired

bokeh_test=pd.read_excel(data, 'bokeh line plot')
display(bokeh_test)


x   y
item        
A   4   0.0000
A   5   0.0000
A   36  39.8879
A   66  46.2022
A   97  32.9306
A   127 25.7896
A   158 21.9209
A   189 18.6405
B   6   4.4775
B   7   1.1710
B   8   0.0000
B …
Run Code Online (Sandbox Code Playgroud)

python palette line-plot bokeh

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

为seaborn的线图中图表下方的区域着色?

我使用seaborn的线图根据数据进行绘制,其代码如下所示:

sns.lineplot( x=df["#Energy"], y=df["py"]+df["px"]+df["pz"])
Run Code Online (Sandbox Code Playgroud)

我得到的情节是

在此输入图像描述

现在我想将其下方的区域涂成不透明的蓝色,我该怎么做,我在seaborn lineplot文档中找不到与此相关的任何内容,感谢所有帮助的努力

python matplotlib line-plot seaborn

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