假设我们有两组不同样本量的“a”和“b”。
n = 10000
set.seed(123)
dist1 = round(rnorm(n, mean = 1, sd=0.5), digits = 1)
dist2 = round(rnorm(n/10, mean = 2, sd = 0.2), digits = 1)
df = data.frame(group=c(rep("a", n), rep("b", n/10)), value=c(dist1,dist2))
Run Code Online (Sandbox Code Playgroud)
我想将以下堆积条形图转换为堆积密度图。
library(ggplot2)
ggplot(data=df, aes(x=value, y=(..count..)/sum(..count..), fill=group)) +
geom_bar()
Run Code Online (Sandbox Code Playgroud)
我知道有一个position="stack"密度图选项。然而,结果如下所示,因为密度的高度是相对于组样本大小,而不是总样本大小。因此,在某种程度上,这个小群体的代表性过高。
ggplot(data=df, aes(x=value, fill=group)) +
geom_density(position="stack")
Run Code Online (Sandbox Code Playgroud)
有没有办法创建与上面的条形图相对应的密度图?
有没有一种简洁的方法来删除创建的图例中的变量名称ggsurvplot?例子:
library(survival)
library(survminer)
set.seed(123)
df=data.frame(gender=c(rep("male", 10), rep("female", 10)), value=c(rnorm(10,mean = 2), rnorm(10,mean = 3)))
fit = surv_fit(Surv(value) ~ gender, data = df)
p = ggsurvplot(fit, data = df, surv.median.line = "none")
Run Code Online (Sandbox Code Playgroud)
我想要的是从图例中删除“性别”一词,如下图所示。我可以通过手动设置图例标签来实现此目的:
p = ggsurvplot(fit, data = df, surv.median.line = "none", legend.labs = c("male", "female"))
Run Code Online (Sandbox Code Playgroud)
但还有更好的办法吗?
编辑:当我手动分配性别时(2.情节),我不小心交换了男性和女性,这表明这种方法是多么危险。
在我的烧瓶应用程序中,我有一个带有两个日期选择器的 WTForm,用于“开始日期”和“结束日期”。验证“结束日期”不早于“开始日期”的最佳方法是什么?
from flask_wtf import FlaskForm
from wtforms.fields.html5 import DateField
from wtforms import SubmitField
class Form(FlaskForm):
startdate_field = DateField('Start Date', format='%Y-%m-%d')
enddate_field = DateField('End Date', format='%Y-%m-%d')
submit_field = SubmitField('Simulate')
Run Code Online (Sandbox Code Playgroud)
我在这个主题上唯一发现的是这个验证器:
wtforms_html5.DateRange
Run Code Online (Sandbox Code Playgroud)
在这里找到:https : //pypi.org/project/wtforms-html5/0.1.3/ 但它似乎是 wtforms-html5 的旧版本。
我plotly express用于散点图。标记的颜色由我的数据框的变量定义,如下例所示。
import pandas as pd
import numpy as np
import plotly.express as px
df = px.data.iris()
fig = px.scatter(df[df.species.isin(['virginica', 'setosa'])], x="sepal_width", y="sepal_length", color="species")
fig.show()
Run Code Online (Sandbox Code Playgroud)
当我添加此变量的另一个实例时,颜色映射会发生变化(首先,'virginica',是红色,然后是绿色)。
fig = px.scatter(df, x="sepal_width", y="sepal_length", color="species",size='petal_length', hover_data=['petal_width'])
fig.show()
Run Code Online (Sandbox Code Playgroud)
添加变量时如何保持颜色的映射?