python - 如何在 seaborn lineplot 上绘制虚线?

标签 python matplotlib seaborn

我只是想使用 seaborn 绘制一条虚线。这是我正在使用的代码和我得到的输出

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

n = 11
x = np.linspace(0,2,n)
y = np.sin(2*np.pi*x)

sns.lineplot(x,y, linestyle='--')
plt.show()

enter image description here

我做错了什么?谢谢

最佳答案

似乎 linestyle= 参数不适用于 lineplot(),并且参数 dashes= 比看起来。

一个(相对)简单的方法可能是使用 ax.lines 获取绘图上的 Line2D 对象列表,然后手动设置线型:

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

n = 11
x = np.linspace(0,2,n)
y = np.sin(2*np.pi*x)

ax = sns.lineplot(x,y)

# Might need to loop through the list if there are multiple lines on the plot
ax.lines[0].set_linestyle("--")

plt.show()

enter image description here

更新:

看来 dashes 参数仅在绘制多条线时适用(通常使用 pandas 数据框)。破折号的指定与 matplotlib 中的相同,是一个(段,间隙)长度的元组。因此,您需要传递一个元组列表。

n = 100
x = np.linspace(0,4,n)
y1 = np.sin(2*np.pi*x)
y2 = np.cos(2*np.pi*x)

df = pd.DataFrame(np.c_[y1, y2]) # modified @Elliots dataframe production

ax = sns.lineplot(data=df, dashes=[(2, 2), (2, 2)])
plt.show()

enter image description here

关于python - 如何在 seaborn lineplot 上绘制虚线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51963725/

相关文章:

python - 如何以 D3.js 风格填充邻接矩阵单元?

python - 如何在seaborn中切换两个类别的颜色?

python - 在seaborn中绘制多个 bool 列

python - difflib 无法正确找到操作码

python - 使用 Python NLTK 对大型 (>70MB) TXT 文件进行标记。串联并写入数据以流式传输错误

python - 正则表达式从 Python 中的字符串中删除 html 标签

python - imshow 并排绘制

python - 根据用户来自哪个页面来区分用户。 Django

python - 更改单个刻度线的颜色不再起作用

python - Bokeh 中的透明图例