Python 使用seaborn打印,不在x轴上全部显示
我用seaborn做了一个绘图,但我需要x轴每3天显示一次日期(因为我原来的df有1000多个寄存器),但这只是出于尊重的原因,因为在绘图中线条显示所有寄存器很重要(只修改x记号) 这是一个dfPython 使用seaborn打印,不在x轴上全部显示,python,matplotlib,plot,seaborn,Python,Matplotlib,Plot,Seaborn,我用seaborn做了一个绘图,但我需要x轴每3天显示一次日期(因为我原来的df有1000多个寄存器),但这只是出于尊重的原因,因为在绘图中线条显示所有寄存器很重要(只修改x记号) 这是一个df import matplotlib.pyplot as plt data = {'Sales': [10,30,20,55,78,90,22,42,53,14,11,31,32,21,20,42], 'Date': ['2020-03-03', '2020-03-04','2020-0
import matplotlib.pyplot as plt
data = {'Sales': [10,30,20,55,78,90,22,42,53,14,11,31,32,21,20,42],
'Date': ['2020-03-03', '2020-03-04','2020-03-05','2020-03-06','2020-03-07', '2020-03-08','2020-03-09','2020-03-10','2020-03-11', '2020-03-12','2020-03-13','2020-03-14','2020-03-15', '2020-03-16','2020-03-17','2020-03-18']}
df = pd.DataFrame (data, columns = ['Date','Sales'])
plt.figure(figsize=(16,10))
chart = sns.lineplot(data=df,x='Date',y='Sales',palette='Set1')
plt = plt.xticks(rotation=45,horizontalalignment='right',fontweight='light')
我需要这样的东西:
非常感谢 您只能使用偶数日期行,这应该足够了:
导入matplotlib.pyplot作为plt
导入seaborn作为sns
数据={'Sales':[10,30,20,55,78,90,22,42,53,14,11,31,32,21,20,42],
‘日期’:[‘2020-03-03’、‘2020-03-04’、‘2020-03-05’、‘2020-03-06’、‘2020-03-07’、‘2020-03-08’、‘2020-03-09’、‘2020-03-10’、‘2020-03-11’、‘2020-03-12’、‘2020-03-13’、‘2020-03-14’、‘2020-03-15’、‘2020-03-16’、‘2020-03-17’、‘2020-03-18’]
df=pd.DataFrame(数据,列=['Date','Sales'])
plt.图(figsize=(16,10))
chart=sns.lineplot(数据=df,x='Date',y='Sales',palete='Set1')
plt.xticks(
df['Date'].iloc[::2],#仅奇数行
旋转=45,
水平对齐='右',
fontweight='light'
)
plt.plot()
您只能选择偶数日期行,这就足够了:
导入matplotlib.pyplot作为plt
导入seaborn作为sns
数据={'Sales':[10,30,20,55,78,90,22,42,53,14,11,31,32,21,20,42],
‘日期’:[‘2020-03-03’、‘2020-03-04’、‘2020-03-05’、‘2020-03-06’、‘2020-03-07’、‘2020-03-08’、‘2020-03-09’、‘2020-03-10’、‘2020-03-11’、‘2020-03-12’、‘2020-03-13’、‘2020-03-14’、‘2020-03-15’、‘2020-03-16’、‘2020-03-17’、‘2020-03-18’]
df=pd.DataFrame(数据,列=['Date','Sales'])
plt.图(figsize=(16,10))
chart=sns.lineplot(数据=df,x='Date',y='Sales',palete='Set1')
plt.xticks(
df['Date'].iloc[::2],#仅奇数行
旋转=45,
水平对齐='右',
fontweight='light'
)
plt.plot()
您可以使用matplotlib的日期定位器和格式化程序来完成几乎所有您想要的时间线样式/定位——请参阅
在您的情况下,我们可以使用日定位器并将间隔设置为3天。您还必须导入matplotlib.dates
import matplotlib.dates as mdates.
现在将此添加到plt.show()
之前:
总的来说是这样的
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib.dates as mdates
ata = {'Sales': [10,30,20,55,78,90,22,42,53,14,11,31,32,21,20,42],
'Date': ['2020-03-03', '2020-03-04','2020-03-05','2020-03-06','2020-03-07', '2020-03-08','2020-03-09','2020-03-10','2020-03-11', '2020-03-12','2020-03-13','2020-03-14','2020-03-15', '2020-03-16','2020-03-17','2020-03-18']}
df = pd.DataFrame (data, columns = ['Date','Sales'])
plt.figure(figsize=(16,10))
chart = sns.lineplot(data=df,x='Date',y='Sales',palette='Set1')
plt.xticks(rotation=45,horizontalalignment='right',fontweight='light')
locator = mdates.DayLocator(interval=3)
chart.xaxis.set_major_locator(locator)
plt.show()
您可以使用matplotlib的日期定位器和格式化程序来完成几乎所有可能的时间线样式/定位,请参见 在您的情况下,我们可以使用日定位器并将间隔设置为3天。您还必须导入matplotlib.dates
import matplotlib.dates as mdates.
现在将此添加到plt.show()
之前:
总的来说是这样的
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib.dates as mdates
ata = {'Sales': [10,30,20,55,78,90,22,42,53,14,11,31,32,21,20,42],
'Date': ['2020-03-03', '2020-03-04','2020-03-05','2020-03-06','2020-03-07', '2020-03-08','2020-03-09','2020-03-10','2020-03-11', '2020-03-12','2020-03-13','2020-03-14','2020-03-15', '2020-03-16','2020-03-17','2020-03-18']}
df = pd.DataFrame (data, columns = ['Date','Sales'])
plt.figure(figsize=(16,10))
chart = sns.lineplot(data=df,x='Date',y='Sales',palette='Set1')
plt.xticks(rotation=45,horizontalalignment='right',fontweight='light')
locator = mdates.DayLocator(interval=3)
chart.xaxis.set_major_locator(locator)
plt.show()