pandas与matplotlib使用

本文为随手笔记

以下的数据都是dataframe

导入

import pandas as pd

创建对象

字典创建
data={'apple':[1,2,3],'orange':[4,5,6],'banana':[7,8,9]}
result=pd.DataFrame(data)
列表
data=[[1,2,3],[4,5,6],[7,8,9]]
result=pd.DataFrame(data)

创建出来是一列一列的

   apple  orange  banana
0      1       4       7
1      2       5       8
2      3       6       9
|
|
这个就是index 

读取文件

pd.read_csv("path路径")
pd.read_excel("path路径")
pd.read_json("path路径")

数据的标题(第一行)

data.columns

数据的索引(index)(第一列)

data.index

数据的内容

data.values

数据访问

1  data.apple
2  data['apple']

单行:data[0]  <----这个好像是错的(待考究)
某几行 :data[0:3]
csv读取某行:data.iloc[0],下标

某行某列的


这个是用标签来找
data.loc[row_label, column_label]  行  列
这个是用下标来找
data.iloc[row_position, column_position]  行  列

两个代码,如果列不写就是一整行 

删除

data=data.drop('列名',axis=0(行)/1(列),inplace=False/True(是否替代))
删除含有空数据的行或者列,方式:全部
data=data.dropna(axis=0(行)/1(列),how='any')
data=data.drop_duplicates(keep='first')  #删除重复的行,并且只保留第一个数据

设置index

data=data.set_index('列名')

更换标签

data.columns=new_columns 

绘图功能

这种是直接调用方法的
import pandas as pd
from matplotlib.plot as plt
#用data数据画折线图
data.plot(
        kind='line',
        title='广东省气象数据', 
        xlabel='月份',
        grid=True,
        legend=True,
        color='r'
) 

类型,
标题,
x轴标签,
网格,
图例,
颜色     
plt.show()
实例化的
figure=data.plot(kind='kine',marker='o',color='r',)
figure.set_xlabel('x轴标签')
figure.set_ylabel('y轴标签')
figure.set_title('标题')
figure.legned()#显示图例
figure.show()#绘图

折线图
pic = data.plot(kind='line', 
                x='月份', 
                y=['温度', '湿度'], 
                linewidth=3, 
                marker='o', 
                markersize=5, 
                color=['#ffb3d9', '#b3d9ff'], 
                title='广东省2024年1-12月气象数据', 
                xlabel='月份', 
                ylabel='数值', 
                grid=True, 
                figsize=(10, 6), 
                rot=0, 
                legend=True)
pic.legend(loc='best')
可以设置
'best':自动选择最佳位置(默认值)。
'upper right':右上角。
'upper left':左上角。
'lower left':左下角。
'lower right':右下角。
'right':右侧。
'center left':左侧中心。
'center right':右侧中心。
'lower center':底部中心。
'upper center':顶部中心。
'center':图形中心。
pic.legend(loc=(0.9,0.9))#这个是设置具体坐标,坐标(0,0)是左下角,(1,1)是右上角
"""
x= x轴的数据
y= y轴的数据
折线图的宽度3
标记:每个数据点用圆形标记表示
标记的大小5
颜色设置
标题:
x轴的标签
y轴的标签
网格:显示
图形大小:宽 10 英寸,高 6 英寸。
图例:显示"""
柱状图
pic = data.plot(
            kind='bar', 
            x='类别',
            y='数值', 
            color=['#ffb3d9', '#ffcc00', '#b3d9ff', '#ff9999'],
            title='我的条形图', 
            xlabel='类别', 
            ylabel='数值', 
            grid=True, 
            legend=True, 
            figsize=(10, 6), 
            rot=45, 
            stacked=False, 
            alpha=0.8, 
            edgecolor='black', 
            linewidth=1)

x轴标签:类别
y轴标签:数值
条形颜色:分别为粉色、黄色、浅蓝色和浅红色
标题:我的条形图
网格:显示
图例:显示
图形大小:宽 10 英寸,高 6 英寸
x轴标签旋转:45 度
条形透明度:0.8
条形边缘颜色:黑色
条形边缘宽度:1
饼图
data.pie(
        data_value1, 
        labels=data3.index, 
        autopct='%1.1f%%', 
        startangle=140,
        colors=custom_colors
)

饼图数据,
饼图数据标签,
显示的小数,
绘制起点的度数,
颜色

画两个饼图
import matplotlib.pyplot as plt

# 示例数据
data_value1 = [215, 130, 245, 210]
labels1 = ['苹果', '香蕉', '樱桃', '橙子']
custom_colors1 = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99']
data_value2 = [150, 100, 120, 80]
labels2 = ['草莓', '葡萄', '芒果', '西瓜']
custom_colors2 = ['#ff6666', '#6666ff', '#66ff66', '#ffff66']

# 创建图形和子图
fig, axes = plt.subplots(
                        nrows=1, --------->一行
                        ncols=2, --------->两列(也就是两个子图)
                        figsize=(16, 8))-->图的大小
                               
# 在第一个子图上绘制饼图
axes[0].pie(data_value1,   --------->数据
            labels=labels1, -------->数据的标签
            autopct='%1.1f%%', ----->显示的小数位数
            startangle=140, -------->画图的起点,逆时针140度
            colors=custom_colors1)-->设置颜色
axes[0].set_title('水果销售占比1')--->设置标题

# 在第二个子图上绘制饼图
axes[1].pie(data_value2, 
            labels=labels2, 
            autopct='%1.1f%%', 
            startangle=90, 
            colors=custom_colors2)
axes[1].set_title('水果销售占比2')

# 调整布局
plt.tight_layout()
# 显示图表
plt.show()
小知识:
在使用pandas的plot的时候,是会自动调用matplotlib(内部调用),
但是plot里面比如图例,网格这些又需要导入matplotlib库

设置图形的大小

plt.figure(figsize=(12, 8))#图例大小

通用方法

plt.legend(loc=(0.8,0.75))  图例及位置
plt.title("name")   图的名字
plt.xlabel()   x轴标签
plt.ylabel()   y轴标签
plt.gird(True, linestyle='--', color='gray', linewidth=1.5, alpha=0.5)  
网格:类型,颜色,线宽度,透明度
plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值