我正在使用seaborn 来创建箱线图。如何修改轴线粗细和颜色?
![[seaborn箱线图轴线厚度]](https://i.stack.imgur.com/w7xJf.jpg)
我不知道我的代码中的哪里可以解决这个问题。我需要更改 x 轴颜色和宽度以使其蓝色且更粗......
谢谢
plt.figure()
fig = plt.figure(figsize=(45,35), dpi=150)
font_size_axes=128
label_font_size=128
ax = sns.boxplot(x=group, y=strain_lable[:], data=table,order=data_order, palette=my_pal, width=0.3,
fliersize=50, linewidth=12)
Run Code Online (Sandbox Code Playgroud) 我是 Python 新手,正在致力于显示具有 2 个数字列和 1 个带有值 (A、B、C、D) 的字符列的数据集的箱线图。我想按字符列显示 2 个数字列中任意一个的值的箱线图。我已经遵循了一些在线教程,但情节没有显示。
\n\n我尝试在某些代码的末尾添加 .show() 或 .plot() ,但收到警告称这些属性不存在。我尝试过使用 matplotlib,当我使用该模块时它似乎工作得更好,但我想学习如何在使用 pandas 时做到这一点。
\n\nimport pandas as pd\ndatafile="C:\\\\Users\\\\\xe2\x80\xa6\\\\TestFile.xlsx"\ndata=pd.read_excel(datafile)\ndata.boxplot(\'Col1\', by=\'Col2\')\nRun Code Online (Sandbox Code Playgroud)\n\n我希望在运行此代码时自动显示箱线图,或者能够再运行一行以弹出它,但我尝试的一切都失败了。我错过了哪些步骤?
\n我在 R 中使用 ggplot 或 boxplot 函数绘制箱线图有问题。我在这里解决了一些问题,但没有一个能解决我的问题。
我的数据集包含 20 个样本,每个样本有 10 个元素。我正在尝试生成箱线图,所以这就是我到目前为止所做的:
NC_RSD.ca.m <- melt(NC_RSD.ca, id.var="Sample")
Run Code Online (Sandbox Code Playgroud)
这是示例数据:
structure(list(Sample = structure(c(15L, 16L, 17L, 18L, 19L,
20L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L,
14L), .Label = c("NC10", "NC11", "NC12", "NC13", "NC14", "NC15",
"NC16", "NC17", "NC18", "NC19", "NC20", "NC21", "NC22", "NC23",
"NC4", "NC5", "NC6", "NC7", "NC8", "NC9"), class = "factor"),
Al = c(21.54055979, 13.89504614, 20.19173286, 15.39846212,
18.6210721, 19.3885953, 17.29371421, 13.85368756, 15.59018781,
14.81984326, 41.64842461, 16.29394917, 14.7150582, …Run Code Online (Sandbox Code Playgroud) 我使用以下代码生成箱线图:
boxplot(top10threads$affect ~ top10threads$ThreadID[], data = top10threads, xlab = "10 biggest Threads", ylab = "Affect", col=(c("gold","darkgreen")), srt=45)
Run Code Online (Sandbox Code Playgroud)
但您可能会注意到 x 轴上的一些标签丢失了,所以我想将它们旋转 45 度。我添加了srt=45,但是不起作用。
通过设置las=2可以垂直旋转它们,但这并不完全是我需要的。
我怎么能这么做呢?谢谢。
我有一个值列表,我想绘制其分布图。我使用的是箱线图,但最好添加一些从箱线图四分位数到轴的虚线。另外,我只想在 x 刻度上显示四分位数值。这是一个粗略的想法,但最后是值而不是名称。
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
vel_arr = np.random.rand(1000,1)
fig = plt.figure(1, figsize=(9, 6))
ax = fig.add_subplot(111)
# Create the boxplot
ax.boxplot(vel_arr,vert=False, manage_ticks=True)
ax.set_xlabel('value')
plt.yticks([1], ['category'])
plt.show()
Run Code Online (Sandbox Code Playgroud) 我试图绘制病毒载量和试验臂的简单箱线图,但不断收到此错误“x[floor(d)] + x[ceiling(d)] 中的错误:二元运算符的非数字参数”。
数据集
PatientID trial_arm viral_load
1 club 19
2 clinic 19
3 club 19
4 club 64
5 clinic 32
6 clinic 29
7 clinic 92
8 club 19
9 clinic 19
10 club 27
Run Code Online (Sandbox Code Playgroud)
当我运行代码时:
> boxplot(dataset,viral_load~trial_arm)
Error in x[floor(d)] + x[ceiling(d)] :
non-numeric argument to binary operator
Run Code Online (Sandbox Code Playgroud)
Trial_arm 变量设置为一个因子,而 Viral_load 是数字。
pythonplotly小提琴图显示负尾,但没有低于0的值。实际y轴在0到23之间(24小时间隔)。但小提琴图尾部超过 23 且小于 0(第 0 和第 23 边距级别添加到图表中)。
代码:
fig = go.Figure()
fig.add_trace(go.Violin(x=df['Region'][ df['alarm_severity'] == 'CRITICAL' ],
y=df['OccurredTime'][ df['alarm_severity'] == 'CRITICAL' ],
legendgroup='CRITICAL', scalegroup='CRITICAL', name='CRITICAL',
line_color='blue')
)
fig.add_trace(go.Violin(x=df['Region'][ df['alarm_severity'] == 'MAJOR' ],
y=df['OccurredTime'][ df['alarm_severity'] == 'MAJOR' ],
legendgroup='MAJOR', scalegroup='MAJOR', name='MAJOR',
line_color='red')
)
fig.add_trace(go.Violin(x=df['Region'][ df['alarm_severity'] == 'WARNING' ],
y=df['OccurredTime'][ df['alarm_severity'] == 'WARNING' ],
legendgroup='WARNING', scalegroup='WARNING', name='WARNING',
line_color='green')
)
fig.add_trace(go.Violin(x=df['Region'][ df['alarm_severity'] == 'MINOR' ],
y=df['OccurredTime'][ df['alarm_severity'] == 'MINOR' ],
legendgroup='MINOR', scalegroup='MINOR', name='MINOR',
line_color='orange')
)
fig.update_traces(box_visible=True, meanline_visible=True )
fig.update_layout(violinmode='group',width=1000,
height=600)
fig.show()
Run Code Online (Sandbox Code Playgroud) 我有一个图,我试图在箱线图系列上覆盖散点图系列...这是问题的一个简单示例,以便您可以重新创建它。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
names = ['a','b','c','d','e','f']
df = pd.DataFrame(np.random.rand(6,6), columns=names)
display(df)
plt.boxplot(df, labels=names)
plt.show()
plt.scatter(names, df.head(1))
plt.show()
plt.boxplot(df, labels=names)
plt.scatter(names, df.head(1))
plt.show()
Run Code Online (Sandbox Code Playgroud)
结果:
因此,您会看到,当箱线图和散点图都添加到同一个图形时,标签不再正确对齐。我该如何修复这种对齐方式?
我有以下代码来绘制箱线图并将所有数据点覆盖在条形图上。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy.random as rnd
f = plt.figure(figsize=[18,12])
ax = f.add_subplot(111)
sns.boxplot(x='month', y='ffdi', hue='scenario', data=df_diff_concat, ax=ax)
sns.stripplot(x="month", y="ffdi",hue='scenario', data=df_diff_concat, ax=ax)
Run Code Online (Sandbox Code Playgroud)
数据点未与其所属条形的中线垂直对齐。
如何解决这个问题?
我试图根据与点相关的特定关系来连接线。在此示例中,线条将连接玩家所在的球场。我可以创建基本结构,但还没有找到一种相当简单的方法来创建此附加功能。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df_dict={'court':[1,1,2,2,3,3,4,4],
'player':['Bob','Ian','Bob','Ian','Bob','Ian','Ian','Bob'],
'score':[6,8,12,15,8,16,11,13],
'win':['no','yes','no','yes','no','yes','no','yes']}
df=pd.DataFrame.from_dict(df_dict)
ax = sns.boxplot(x='score',y='player',data=df)
ax = sns.swarmplot(x='score',y='player',hue='win',data=df,s=10,palette=['red','green'])
plt.show()
Run Code Online (Sandbox Code Playgroud)
boxplot ×10
python ×6
matplotlib ×4
pandas ×3
r ×3
seaborn ×3
ggplot2 ×1
plotly ×1
python-3.x ×1
quartile ×1
scatter-plot ×1
violin-plot ×1