Python 数据可是化 折线图、散点图、柱状图

总结一些自己在实验中用到的可视化代码,以便于自己以后实验使用。

1.折线图

# %%
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

#mac支持中文
font = FontProperties(fname=‘/Library/Fonts/Songti.ttc‘)

# 数据准备
x = range(1, 11)
y1 = [0.514820119, 0.540265696, 0.514820119, 0.514820119, 0.552988485, 0.514820119, 0.496779618, 0.514820119, 0.527542907, 0.514820119]
y2 = [0.188128434, 0.188128434, 0.188128434, 0.188128434, 0.188128434, 0.188128434, 0.188128434, 0.188128434, 0.188128434, 0.188128434]
y3 = [0.726365738, 0.682187617, 0.683241911, 0.685723948, 0.688467763, 0.689401198, 0.690968143, 0.691350712, 0.694016418, 0.694324856]
y4 = [0.734460903, 0.696623025, 0.696934759, 0.697733559, 0.697891845, 0.697293132, 0.697519995, 0.695791853, 0.69578938, 0.695674162]
y5 = [0.809058993, 0.717387038, 0.717405582, 0.717170923, 0.716692194, 0.715951522, 0.716337443, 0.718476258, 0.718576645, 0.718658172]

plt.plot(x, y1, label=‘算法1‘)
plt.plot(x, y2, label=‘算法2‘)
plt.plot(x, y3, label=‘算法3‘)
plt.plot(x, y4, label=‘算法4‘)
plt.plot(x, y5, label=‘算法5‘)

plt.legend(loc=‘lower right‘, prop=font)  # 让图例生效
plt.xlabel("实验次数", fontproperties=font)  # X轴标签
plt.ylabel("实验准确度", fontproperties=font)  # Y轴标签
plt.title("Comparison of algorithm accuracy")  # 标题

plt.show()

直线度分开展示

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

# mac支持中文
font = FontProperties(fname=‘/Library/Fonts/Songti.ttc‘)

x = range(1, 11)
yD = [0.514820119, 0.540265696, 0.514820119, 0.514820119, 0.552988485, 0.514820119, 0.496779618, 0.514820119, 0.527542907, 0.514820119]
yE = [0.188128434, 0.188128434, 0.188128434, 0.188128434, 0.188128434, 0.188128434, 0.188128434, 0.188128434, 0.188128434, 0.188128434]
yL = [0.726365738, 0.682187617, 0.683241911, 0.685723948, 0.688467763, 0.689401198, 0.690968143, 0.691350712, 0.694016418, 0.694324856]
yR = [0.734460903, 0.696623025, 0.696934759, 0.697733559, 0.697891845, 0.697293132, 0.697519995, 0.695791853, 0.69578938, 0.695674162]
yX = [0.809058993, 0.717387038, 0.717405582, 0.717170923, 0.716692194, 0.715951522, 0.716337443, 0.718476258, 0.718576645, 0.718658172]

# 生成图片格式
fig = plt.figure()

ax1 = fig.add_subplot(121)
ax1.spines[‘right‘].set_color(‘none‘)     # 去掉右边的边框线
ax1.spines[‘top‘].set_color(‘none‘)       # 去掉上边的边框线
ax1.plot(x, yD, label=‘算法1‘)
ax1.plot(x, yE, label=‘算法2‘)

# 对x轴和y轴的刻度进行限制
plt.xticks(
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    [r‘0‘, r‘1‘, r‘2‘, r‘3‘, r‘4‘, r‘5‘, r‘6‘, r‘7‘, r‘8‘, r‘9‘, r‘10‘]
)
plt.yticks(
    [0, 0.1, 0.2, 0.4, 0.5, 0.6, 0.7, 0.8],
    [r‘0‘, r‘0.1‘, r‘0.2‘, r‘0.3‘, r‘0.4‘, r‘0.5‘, r‘0.6‘, r‘0.7‘, r‘0.78‘]
)

plt.legend(loc=‘up right‘, prop=font)  # 让图例生效
plt.xlabel(r‘实验次数‘, fontproperties=font)  # X轴标签
plt.ylabel(r‘准确度‘, fontproperties=font)  # Y轴标签

ax2 = fig.add_subplot(122)
ax2.spines[‘right‘].set_color(‘none‘)     # 去掉右边的边框线
ax2.spines[‘top‘].set_color(‘none‘)       # 去掉上边的边框线
ax2.plot(x, yL, label=‘算法3‘)
ax2.plot(x, yR, label=‘算法4‘)
ax2.plot(x, yX, label=‘算法5‘)

plt.xticks(
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    [r‘0‘, r‘1‘, r‘2‘, r‘3‘, r‘4‘, r‘5‘, r‘6‘, r‘7‘, r‘8‘, r‘9‘, r‘10‘]
)
plt.legend(loc=‘up right‘, prop=font)  # 让图例生效
plt.xlabel(r‘实验次数‘, fontproperties=font)  # X轴标签
# plt.xlabel("实验次数", fontproperties=font)  # X轴标签
plt.ylabel(r‘准确度‘, fontproperties=font)  # Y轴标签
fig.suptitle(r‘算法准确度对比‘, fontproperties=font, fontsize=15)

# 增加子图间的间隔
fig.subplots_adjust(hspace=0.4)
plt.show()

3.柱状图

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

# mac支持中文
font = FontProperties(fname=‘/Library/Fonts/Songti.ttc‘)
#
Conference = {‘AAAI‘: 18, ‘ACL‘: 4, ‘CIKM‘: 12, ‘CogSci‘: 1, ‘ICLR‘: 4, ‘ICML‘: 6, ‘IJCAI‘: 17, ‘KDD‘: 31, ‘NIPS‘: 3, ‘SDM‘: 2, ‘TKDE‘: 1, ‘WSDM‘: 7, ‘WWW‘: 6}
# 数据
x = []
y = []
for key, value in Conference.items():
    x.append(key)
    y.append(value)

# 设置图片的大小格式
plt.figure(figsize=(8, 5))

plt.bar(x, y, tick_label=x)

plt.xlabel("会议", fontproperties=font)  # X轴标签
plt.ylabel("数量", fontproperties=font)  # Y轴标签

plt.show()

4.柱状图 + 彩色

import matplotlib.pyplot as plt
import seaborn as sns
from pandas import DataFrame

plt.rc("font", family="SimHei", size="12")  # 用于解决中文显示不了的问题

# 数据
Conference = {‘AAAI‘: 18, ‘ACL‘: 4, ‘CIKM‘: 12, ‘CogSci‘: 1, ‘ICLR‘: 4, ‘ICML‘: 6, ‘IJCAI‘: 17, ‘KDD‘: 31, ‘NIPS‘: 3, ‘SDM‘: 2, ‘TKDE‘: 1, ‘WSDM‘: 7, ‘WWW‘: 6}
x_Conference = []
y_Conference = []
for (key, value) in Conference.items():
    x_Conference.append(key)
    y_Conference.append(value)
dictionary = {‘会议‘: x_Conference, ‘数量‘: y_Conference}
frame = DataFrame(dictionary)

# 设置图片的大小格式
plt.figure(figsize=(8, 5))

sns.barplot(x=‘会议‘, y=‘数量‘, data=frame)

plt.show()

4.折线图 + 标记

import matplotlib.pyplot as plt

plt.rc("font", family="SimHei", size="12")  # 用于解决中文显示不了的问题

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y1 = [0.73, 0.69, 0.73, 0.75, 0.73, 0.70, 0.73, 0.72, 0.74, 0.73]
y2 = [0.70, 0.65, 0.70, 0.74, 0.70, 0.68, 0.70, 0.71, 0.69, 0.70]
y3 = [0.69, 0.70, 0.69, 0.66, 0.69, 0.71, 0.69, 0.68, 0.72, 0.69]
y4 = [0.45, 0.47, 0.45, 0.5, 0.45, 0.43, 0.45, 0.47, 0.44, 0.45]

plt.plot(x, y1, marker=‘.‘, label=‘算法1‘)
plt.plot(x, y2, marker=‘*‘, label=‘算法2‘)
plt.plot(x, y3, marker=6, label=‘算法3‘)
plt.plot(x, y4, marker=‘H‘, label=‘算法4‘)

plt.legend()  # 让图例生效

plt.xticks([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [r‘1‘, r‘2‘, r‘3‘, r‘4‘, r‘5‘, r‘6‘, r‘7‘, r‘8‘, r‘9‘, r‘10‘])
plt.yticks([0.3,  0.5,  0.7, 0.9], [r‘0.3‘, r‘0.5‘, r‘0.7‘, r‘0.9‘])

plt.xlim(0, 11)
plt.ylim(0.2, 1.0)

plt.xlabel("实验次数")  # X轴标签
plt.ylabel("准确率")  # Y轴标签
plt.title("XXXXX实验结果")  # 标题

plt.show()

5.散点图

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

# 设置图片尺寸 8 x 4
matplotlib.rc(‘figure‘, figsize=(8, 4))
# 不显示顶部和右侧的坐标线
matplotlib.rc(‘axes.spines‘, top=False, right=False)
# 不显示网格
matplotlib.rc(‘axes‘, grid=True)

# 0.数据
x_data = np.random.rand(100) * 100
y_data = np.random.rand(100) * 100

# 1.画图
plt.scatter(x_data, y_data, s=10, color=‘k‘)
plt.title("title")
plt.xlabel("x_label")
plt.ylabel("y_label")
plt.show()

6.横向柱状图

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

# 设置图片尺寸 14" x 7"
matplotlib.rc(‘figure‘, figsize=(8, 4))
# 设置字体 14
# matplotlib.rc(‘font‘, size=20)
# 不显示顶部和右侧的坐标线
matplotlib.rc(‘axes.spines‘, top=False, right=False)
# 不显示网格
matplotlib.rc(‘axes‘, grid=False)
# 设置背景颜色是白色
matplotlib.rc(‘axes‘, facecolor=‘white‘)

name = [‘类别1‘, ‘类别2‘, ‘类别3‘, ‘类别4‘, ‘类别5‘, ‘类别6‘, ‘类别7‘, ‘类别8‘, ‘类别9‘, ‘类别10‘]

# 绘图
x = np.arange(10)
data = np.random.rand(10) * 100
plt.barh(x, data, tick_label=name, alpha=0.6)
plt.show()

7.多柱柱状图

import matplotlib.pyplot as plt
import numpy as np

# x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
x_name = range(1, 11)
y1 = np.random.rand(10) * 100
y2 = np.random.rand(10) * 100
y3 = np.random.rand(10) * 100
y4 = np.random.rand(10) * 100

x = list(range(0, 10))

total_width, n = 0.8, 4
width = total_width / n

plt.bar(x, y1, width=width, label=‘Algorithm1‘)

for i in range(len(x)):
    x[i] = x[i] + width
plt.bar(x, y2, width=width, label=‘Algorithm2‘, tick_label=x_name)

for i in range(len(x)):
    x[i] = x[i] + width
plt.bar(x, y3, width=width, label=‘Algorithm3‘)

for i in range(len(x)):
    x[i] = x[i] + width
plt.bar(x, y4, width=width, label=‘Algorithm4‘)

plt.legend()
plt.show()

8.柱状图 + seaborn

import matplotlib.pyplot as plt
import seaborn as sns

data = [0.53, 0.45, 0.5, 0.40, 0.894765739, 0.89775031, 0.898468296, 0.91413729, 0.913968352, 0.913968352]

sns.countplot(data)
plt.show()

原文地址:https://www.cnblogs.com/JCcodeblgos/p/10111403.html

时间: 2024-11-05 13:43:58

Python 数据可是化 折线图、散点图、柱状图的相关文章

[转]用Matplotlib绘制 折线图 散点图 柱状图 圆饼图

Matplotlib是一个Python工具箱,用于科学计算的数据可视化.借助它,Python可以绘制如Matlab和Octave多种多样的数据图形. 安装 Matplotlib并不是Python的默认组件,需要额外安装. 官方下载地址 http://matplotlib.org/downloads.html 必须下载与自己的Python版本,操作系统类型对应的安装包.如Windows 64位+Python3.3,应该下载matplotlib-1.3.1.win-amd64-py3.3.exe 第

VS2010 使用TeeChart画图控件 - 之二 - 绘制图形(折线图,柱状图)

1.前期准备 详细可见VS2010 使用TeeChart画图控件 - 之中的一个 控件和类的导入 1. 1 加入TeeChart控件,给控件加入变量m_TeeChart 加入TeeChart控件,右击控件,选择加入变量,vs会自己主动给我们引入CTchart1这个类,可是仅仅有这个类,我们是远远不够的,须要加入teechart其它相关的类,加入方法在之前已经讲过,不再反复. 1.2. 引入必要的头文件 事实上之前的方法比較麻烦,更简单就是通过类向导,导入类型库的类 如图进入类向导,选择加入类bu

Android画折线图、柱状图、饼图(使用achartengine.jar)

自从用了画折线的jar包之后,就不想再用canvas画布去画了,编程就是要站在巨人的肩膀上. 所需要的jar包achartenginejar 折线代码布局文件就不上传了很简单 另一种线的渲染器 扇形图代码 柱状图代码 属性总结部分代码 新测试代码下载地址 所需要的jar包:achartengine.jar 下载地址:http://download.csdn.net/detail/zhengyikuangge/9460642 折线代码(布局文件就不上传了,很简单): package com.exa

第四篇:R语言数据可视化之折线图、堆积图、堆积面积图

前言 折线图通常用来对两个连续变量的依存关系进行可视化,其中横轴很多时候是时间轴. 但横轴也不一定是连续型变量,可以是有序的离散型变量. 绘制基本折线图 本例选用如下测试数据集: 绘制方法是首先调用ggplot函数选定数据集,并在aes参数中指明横轴纵轴.然后调用条形图函数geom_line()便可绘制出基本折线图.R语言示例代码如下: # 基函数 ggplot(BOD, aes(x = Time, y = demand)) + # 折线图函数 geom_line()     运行结果: 向折线

RDLC报表系列(六) 多图表-折线图和柱状图

美好的一天开始了,这篇是RDLC系列的最后一篇文章,我的小项目也已经release,正在测试中. 1.新建demo3.aspx和demo3.rdlc文件 2.往rdlc文件中拖一个图标控件,在弹出的窗口中选择某一类“柱状图”,点击确定 3.在底部的“将类别字段拖至此处”区域选择你要分类的字段,这里为[FiscalMonth] 4.在上面的“将数据字段拖至此处”区域选择你要显示的数据字段,并将函数Count改为Sum,这里[Sum(Actual)]和[Sum(Budget)]. 5.在[Sum(B

Python数据可视化——使用Matplotlib创建散点图

Matplotlib简述: Matplotlib是一个用于创建出高质量图表的桌面绘图包(主要是2D方面).该项目是由John Hunter于2002年启动的,其目的是为Python构建一个MATLAB式的绘图接口.如果结合Python IDE使用比如PyCharm,matplotlib还具有诸如缩放和平移等交互功能.它不仅支持各种操作系统上许多不同的GUI后端,而且还能将图片导出为各种常见的矢量(vector)和光栅(raster)图:PDF.SVG.JPG.PNG.BMP.GIF等. 此外,M

echart 折线图、柱状图、饼图、环形图颜色修改

之前在做报表的时候用过echart 用完也就完了,而这次在用的时候已经忘了,所以这里简单记录一下,好记性不如烂笔头!!! 1.折线图修改颜色: [javascript] view plain copy xAxis: { type: 'category', boundaryGap: false, data: ['年龄','20岁以下','30岁','40岁','50岁','60岁','60岁以上'] }, yAxis: { type: 'value' }, series: [ { name:'员工

运用canvas绘折线图和柱状图

一.绘制折线图 1.首先,随便定义一个数组对象代表坐标,然后绘出打底的网格线: <canvas width="600px" height="400px" ></canvas> <script> var mycanvas=document.querySelector("canvas"); var pan=mycanvas.getContext("2d"); var wid=mycanvas.w

图表echarts折线图,柱状图,饼状图

总体就是有折线图相关图标的设置,x,y轴的设置,x,y轴或者数据加上单位的设置.饼状图如何默认显示几个数据中的某个数据 折线图:legend(小标题)中间默认是圆圈 改变成直线 在legend设置的时候就改变icon的形状 legend: { data:[ { name:'访问次数', icon:'line' }, { name:'访', icon:'line' }, { name:'访问', icon:'line' }, ], textStyle:{ color:'#fff' }, right