To Ms.Yang

问题叙述:

Because the task I promised Ms. Yang some time ago has not been completed, I take this opportunity to sort out the following contents and apologize, hoping to be forgiven by Ms. Yang.


一、折线图

# python绘制折线图教程
import matplotlib.pyplot as plt
# 引入csv模块
import csv

path="csv文件地址"
# 用csv文件数据
# with函数省略close操作
with open(path) as data:
    reader = csv.reader(data)
    rows = [row[0] for row in reader]
    # row for row in reader  把reader中每一行的数据取出来
# 输出表中的第一行数据作为展示
x=rows[1:]
print(x)

with open(path) as data2:
    reader1 = csv.reader(data2)
    line = [i[1] for i in reader1]
y=line[1:]
print(y)

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 控制plt绘图中文显示代码  简称   rc配置 或者  rc参数(可配置多种属性)
# https://blog.csdn.net/weixin_39010770/article/details/88200298
# rc参数配置详情

# plot中参数的含义分别是横轴值(x),纵轴值(y),线的形状、颜色,透明度,线的宽度和标签内容。
plt.plot(x, y, 'ro-', alpha=0.8, linewidth=1, label='图例内容')
# 折线图必备两个列表,分别用于x和y轴数据(自行填入或读取csv数据文件)
plt.legend(loc="upper left")
# 配置默认参数:实现plt.plot中label属性显示
# labels 是图例的名称(能够覆盖在plt.plot( )中label参数值)
# loc 代表了图例在整个坐标轴平面中的位置(一般选取'best'这个参数值)

plt.xlabel('x轴名称')
plt.ylabel('y轴名称')
# 参数轴名称标识

plt.show()
# 绘图

二、条形图

import matplotlib.pyplot as plt
import csv
path="csv文件地址"
# 用csv文件数据
# with函数省略close操作
with open(path) as data:
    reader = csv.reader(data)
    rows = [row[0] for row in reader]
    # row for row in reader  把reader中每一行的数据取出来
# 输出表中的第一行数据作为展示
x = rows[1:]
print(x)

with open(path) as data2:
    reader1 = csv.reader(data2)
    line = [i[1] for i in reader1]
y = line[1:]
print(y)

# 这两行代码解决 plt 中文显示的问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 条形图绘图基本属性格式如下:
# matplotlib.pyplot.barh(y, width, height=0.8, left=None, *, align=’center’, **kwargs)
plt.barh(x, y)  # 横放条形图函数 barh
# plt.bar(waters, buy_number)  竖直放置条形图函数  bar
plt.title('条形图')
plt.xlabel('x轴名称')
plt.ylabel('y轴名称')
plt.show()

三、饼状图

import matplotlib.pyplot as plt
import csv
path="csv文件地址"
# 中文字符设置
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 用csv文件数据
# with函数省略close操作
with open(path) as data:
    reader = csv.reader(data)
    rows = [row[0] for row in reader]
    # row for row in reader  把reader中每一行的数据取出来
# 输出表中的第一行数据作为展示
x=rows[1:]
print(x)

with open(path) as data2:
    reader1 = csv.reader(data2)
    line = [i[1] for i in reader1]
y=line[1:]
print(y)

# 各部分名称
labels = x
# 各部分数值大小
num = y

# 画饼图(数据,数据对应的标签,百分数保留两位小数点)
plt.pie(num, labels=labels, autopct='%1.2f%%',textprops={'fontsize': 20, 'color': 'black'})
plt.title("饼状图绘制")
# 绘制函数
plt.show()

四、散点图

import matplotlib.pyplot as plt
import numpy as np
import csv
path="csv文件地址"
# plt格式处理
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 用csv文件数据
# with函数省略close操作
with open(path) as data:
    reader = csv.reader(data)
    rows = [row[0] for row in reader]
    # row for row in reader  把reader中每一行的数据取出来
# 输出表中的第一行数据作为展示
x=rows[1:]
print(x)

with open(path) as data2:
    reader1 = csv.reader(data2)
    line = [i[1] for i in reader1]
y=line[1:]
print(y)

# 颜色序列,也可以使用rgb
c = np.array([0,1,2,3,4])
# 简单参数介绍  c颜色参数  s散点大小
plt.scatter(x, y, c=c, s=100, label='图例内容')
plt.xticks(x)
plt.yticks(y)
plt.xlabel("x轴名称", fontdict={'size': 20})
plt.ylabel("y轴名称", fontdict={'size': 20})
plt.title("散点图绘制", fontdict={'size': 20})
plt.legend(loc='best')
plt.show()

五、箱线图

对于前几种基础图形,改进及完善的地方在于绘图参数的配置,线条的rc配置参数,图样丰富度等等。基本生成方法较为简单。对于箱线图的数据略有特殊。
我们采用DataFrame方法处理字典数据,同时注意的是用不同方法读取csv文件可能产生不同结果。DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)

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

path="csv文件地址"
# 格式处理
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 用csv文件数据
# with函数省略close操作
with open(path) as data:
    reader = csv.reader(data)
    rows = [row[0] for row in reader]
    # row for row in reader  把reader中每一行的数据取出来
# 输出表中的第一行数据作为展示
x=rows[1:]
print(x)

with open(path) as data2:
    reader1 = csv.reader(data2)
    line = [i[1] for i in reader1]
y=line[1:]
print(y)

int_lst = []
for item in y:
    int_lst.append(int(item))
print(int_lst)

dic = dict.fromkeys(x, int_lst)
print(dic)
dic1=pd.DataFrame(dic)

dt = pd.DataFrame(dic1)
# 用matplotlib来画出箱型图
plt.boxplot(dt)
plt.show()


解释说明

因实际要求,每个图的生成需要独立代码,顾没有用函数方法整合重复代码块,另外对于文件操作方法有很大改进空间,自行修改。

你可能感兴趣的:(python,人工智能,数据挖掘)