如何纠正 Jupyter 中的折线图起点?

Posted

技术标签:

【中文标题】如何纠正 Jupyter 中的折线图起点?【英文标题】:How to correct line chart starting point in Jupyter? 【发布时间】:2020-12-31 12:36:47 【问题描述】:

从图片中可以看出,此图表中的线从 2 开始,而不是 1。谁能帮我解决这个问题?我应该改变什么让它从 1 开始?

from numpy.random import randint

df1=pd.DataFrame([[1,2,3,4,5,6,7,8,9,10,11],list(randint(400,500,11)),randint(400,500,11)]).T
df1.columns=['CustomerS','value1','value2']
df1=df1.set_index('CustomerS')
df2=pd.DataFrame([[1,2,3,4,5,6,7,8,9,10,11],randint(0,10,11)]).T
df2.columns=['CustomerS','value1']
df2=df2.set_index('CustomerS')
ax=df1.plot(kind='bar',stacked=True)
ax2=ax.twinx()

df2.plot(kind='line', color='r',ax= ax2)

【问题讨论】:

你解决了吗? @Grayrigel 不,还没有:( 我已经添加了一个答案。如果有帮助,请点赞并采纳。 【参考方案1】:

试试这个:

from numpy.random import randint
import pandas as pd
import matplotlib.pyplot as plt


df1=pd.DataFrame([[1,2,3,4,5,6,7,8,9,10,11],list(randint(400,500,11)),randint(400,500,11)]).T
df1.columns=['CustomerS','value1','value2']
#df1=df1.set_index('CustomerS')
df2=pd.DataFrame([[1,2,3,4,5,6,7,8,9,10,11],randint(0,10,11)]).T
df2.columns=['CustomerS','value1']
#df2=df2.set_index('CustomerS')

df3 = df1.merge(df2,on='CustomerS') #merging two dataframes
df3.columns = ['CustomerS','value1','value2','value3']
df3.iloc[:,:-1].plot.bar(x='CustomerS',stacked=True)

df3.iloc[:,-1].plot(x='CustomerS',secondary_y=True, color='r')
plt.legend(loc=2)

输出

【讨论】:

很高兴我能帮上忙。传统是接受和支持。

以上是关于如何纠正 Jupyter 中的折线图起点?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算出现次数并将其用于 R 中的折线图

如何增加 ng2-charts 中的折线图宽度?

s-s-rS 中的折线图问题

vb.net中Windows窗体应用程序中的折线图

为啥EXCEL做出的折线图 初始点不在0 如图

如何将“verticalRangeArea”与Kendo UI Chart中的折线图组合?