绘制DataFrame折线图及其他

一(1)建立DataFrame,要求行标签为one,two,three,four,five字符串,列标签为A,B,C字符串,值为标准正态分布
(2)绘制该DataFrame折线图
二1)建立DataFrame,要求行标签为one,two,three,four,five字符串,列标签为A,B,C字符串,值为均匀分布
(2)绘制柱状图和堆积柱状图
三(1)建立DataFrame,要求列标签为A,B,C字符串,值是形状为(50,3)的均匀分布
(2)以第一列值为x,第三列值为y,绘制散点图并拟合出一条线性回归线
想知道如何撰写

一、绘制该DataFrame折线图


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

data = {
        'A': [0, 1, 2, 1, 0],
        'B': [1, 2, 3, 2, 1],
        'C': [2, 3, 4, 3, 2]
        }
df = pd.DataFrame(data, index=['one', 'two', 'three', 'four', 'five'], columns=['A', 'B', 'C'])

y1=df['A'] # 取所有行的第1列数据为y1
y2=df['B'] # 去所有行的第2列数据为y2
x=np.arange(1, 6) # x为[0,1,2,3,4,5]
ax=plt.subplot(111) # 11列的一张子图,即只有一张图。三个1分别表示1行、1列、第1个
ax.plot(x,y1,'bD-') # 对y1的数据作图,b表示蓝色,D表示菱形,-表示实直线
ax.plot(x,y2,'r^--') # 对y2的数据作图,r表示红色,^表示三角形,--表示破折线
plt.show()

img

二、绘制柱状图和堆积柱状图

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

data = {
        'A': [0, 1, 2, 1, 0],
        'B': [1, 2, 3, 2, 1],
        'C': [2, 3, 4, 3, 2]
        }
df = pd.DataFrame(data, index=['one', 'two', 'three', 'four', 'five'], columns=['A', 'B', 'C'])
#
y1=df['C'] # 取所有行的第1列数据为y1
x=np.arange(1, 6) # x为[0,1,2,3,4,5]
# 绘制条形图
plt.bar(x, y1,  width=0.5)
plt.show()

img

三、绘制散点图



现学现卖一下,仅供参考:

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

plt.rcParams['axes.unicode_minus']=False
plt.rcParams['font.sans-serif']=['SimHei']
'''标准正态分布'''
df1=pd.DataFrame(np.random.standard_normal(15).reshape(5,3),index=['one','two','three','four','five'],columns=['A','B','C'])
df1.plot(kind='line',title='标准正态分布')

'''均匀分布'''
df2=pd.DataFrame(np.random.uniform(-1,1,15).reshape(5,3),index=['one','two','three','four','five'],columns=['A','B','C'])
fig,axes = plt.subplots(1,2,figsize = (8,4))
df2.plot(kind = 'bar',stacked = False,grid = True,ax = axes[0],title='均匀分布-柱状图')
df2.plot(kind = 'bar',stacked = True,grid = True,ax = axes[1],title='均匀分布-堆积柱状图')


'''散点图+线性回归线'''
df3=pd.DataFrame(np.random.uniform(1,100,150).reshape(50,3), columns=['A','B','C'])
df3.plot(kind="scatter",x='A',y='C',title='平均分布散点图')
f=np.polyfit(df3.values[:,0],df3.values[:,2],1)
x1 = range(0,100)
y1 = x1*f[0]+f[1]
plt.plot(x1,y1,color='red')
plt.show()

img