首页 > 解决方案 > 如何以更准确的方式绘制图形?

问题描述

我有一个数据集,其中包含1440 rows × 297 columns. 我试图03_jan_2018根据时间(X 轴)和密度(Y 轴)进行绘图,但我遇到了一个问题。结果图不够清晰,X轴也没有出现!!

我想做 这样的事情:

在此处输入图像描述

但我结束了这个:

在此处输入图像描述

谁能帮我?

提前致谢!

标签: python-3.xmatplotlibjupyter-notebook

解决方案


x 轴已出现,但您似乎面临与此处所述相同的问题。无论如何,我将向您展示如何获得您想要的东西,同时避免 x 轴符号可能出现的问题。

情节1:

在此处输入图像描述

代码 1:

# imports
import matplotlib.ticker as ticker
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# random data or other data sources
np.random.seed(123)
rows = 1440
df = pd.DataFrame(np.random.uniform(-1,1,size=(rows, 2)),
                  index=pd.date_range('1/1/2000', periods=1440),
                    columns=list('AB'))

df['A'] = df['A'].cumsum()
df['B'] = df['B'].cumsum()

# Plot
fig, ax = plt.subplots()
t = df.index
ax.plot(t, df['A'])
ax.plot(t, df['B'], color='red')

您还可以像这样编辑和调整轴符号:

情节2:

在此处输入图像描述

代码 2:

# imports
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# random data or other data sources
np.random.seed(123)
rows = 1440
df = pd.DataFrame(np.random.uniform(-1,1,size=(rows, 2)),
                  index=pd.date_range('1/1/2020', periods=1440),
                    columns=list('AB'))

df['A'] = df['A'].cumsum()
df['B'] = df['B'].cumsum()

# Make a list of empty myLabels
myLabels = ['']*len(df.index)

# Plot
fig, ax = plt.subplots()
t = df.index
ax.plot(t, df['A'])
ax.plot(t, df['B'], color='red')

# Set labels on every Nth element in myLabels specified by the interval variable
myLabels = ['']*len(df.index)
interval = 2
myLabels[::interval] = [item.strftime('%Y - %m - %d') for item in df.index[::interval]]
ax.xaxis.set_major_formatter(ticker.FixedFormatter(myLabels))
plt.gcf().autofmt_xdate()

# Tilt the labels
plt.setp(ax.get_xticklabels(), rotation=30, fontsize=10)
plt.show()

推荐阅读