可视化实验十:利用Python绘制棒图散点图

Posted @阿证1024

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可视化实验十:利用Python绘制棒图散点图相关的知识,希望对你有一定的参考价值。

实验目的:

  1. 掌握Python中棒图、散点图绘图函数的使用及展示图形的意义
  2. 利用上述绘图函数实现数据可视化

实验内容:

  1. 练习python中棒图、散点图绘图函数的用法,掌握相关参数的概念
  2. 根据步骤一绘图函数要求,处理实验数据
  3. 根据步骤二得到的实验数据,绘制棒图、散点图
  4. 练习如何通过调整参数使图片呈现不同效果,例如颜色、图例位置、背景网格、坐标轴刻度和标记等

实验过程(附结果截图):

1. 练习python中棒图、散点图绘图函数的用法,掌握相关参数的概念

(1)绘制棒图

# 导包
import matplotlib.pyplot as plt
import numpy as np

# 中文显示
plt.rcParams['font.family'] = 'FangSong'

# 数据准备
a = np.linspace(0, 10, 20)
b = np.random.randn(20)

# 绘制图形, xyz对应头部, 柱体, 基线
x, y, z = plt.stem(a, b, markerfmt="o", linefmt="-.", basefmt="--")

# 单独设置棉棒末端
plt.setp(x, color='k')

# 显示
plt.show()


(2)绘制散点图

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"C:\\Windows\\Fonts\\simhei.ttf", size=14)

xValue = list(range(0, 101))
yValue = [x * np.random.rand() for x in xValue]

plt.title(u'散点图示例', FontProperties=font)

plt.xlabel('x-value')
plt.ylabel('y-label')
# plt.scatter(x, y, s, c, marker)
# x: x轴坐标
# y:y轴坐标
# s:点的大小/粗细 标量或array_like 默认是 rcParams['lines.markersize'] ** 2
# c: 点的颜色
# marker: 标记的样式 默认是 'o'
plt.legend()

plt.scatter(xValue, yValue, s=20, c="#ff1212", marker='o')
plt.show()


2. 根据步骤一绘图函数要求,处理实验数据

(1)实验数据

a = np.linspace(0.5, 2*np.pi, 20)
b = np.random.randn(20)

3. 根据步骤二得到的实验数据,绘制棒图、散点图

(1)绘制棒图

import matplotlib.pyplot as plt
import numpy as np

a = np.linspace(0.5, 2*np.pi, 20)
b = np.random.randn(20)

plt.stem(a, b)

plt.show()

(2)绘制散点图

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# matplotlib画图中中文显示会有问题,需要这两行设置默认字体

plt.xlabel('X')
plt.ylabel('Y')
plt.xlim(xmax=9, xmin=0)
plt.ylim(ymax=9, ymin=0)
# 画两条(0-9)的坐标轴并设置轴标签x,y

x1 = np.random.normal(2, 1.2, 300)  # 随机产生300个平均值为2,方差为1.2的浮点数,即第一簇点的x轴坐标
y1 = np.random.normal(2, 1.2, 300)  # 随机产生300个平均值为2,方差为1.2的浮点数,即第一簇点的y轴坐标
x2 = np.random.normal(7.5, 1.2, 300)
y2 = np.random.normal(7.5, 1.2, 300)
colors1 = '#00CED1'  # 点的颜色
colors2 = '#DC143C'
area = np.pi * 4**2  # 点面积
# 画散点图
plt.scatter(x1, y1, s=area, c=colors1, alpha=0.4, label='类别A')
plt.scatter(x2, y2, s=area, c=colors2, alpha=0.4, label='类别B')
plt.plot([0, 9.5], [9.5, 0])
plt.legend()
plt.show()


4. 练习如何通过调整参数使图片呈现不同效果,例如颜色、图例位置、背景网格、坐标轴刻度和标记等

(1)绘制棒图

import matplotlib.pyplot as plt
import numpy as np

a = np.linspace(0.5, 2*np.pi, 20)
b = np.random.randn(20)

plt.stem(a, b, linefmt="-.", markerfmt="o", basefmt="-")

plt.show()

(2)绘制散点图

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# matplotlib画图中中文显示会有问题,需要这两行设置默认字体

plt.xlabel('X')
plt.ylabel('Y')
plt.xlim(xmax=9, xmin=0)
plt.ylim(ymax=9, ymin=0)
# 画两条(0-9)的坐标轴并设置轴标签x,y

x1 = np.random.normal(2, 1.2, 300)  # 随机产生300个平均值为2,方差为1.2的浮点数,即第一簇点的x轴坐标
y1 = np.random.normal(2, 1.2, 300)  # 随机产生300个平均值为2,方差为1.2的浮点数,即第一簇点的y轴坐标
x2 = np.random.normal(7.5, 1.2, 300)
y2 = np.random.normal(7.5, 1.2, 300)
colors1 = '#00CED1'  # 点的颜色
colors2 = '#DC143C'
area = np.pi * 4**2  # 点面积
# 画散点图
plt.scatter(x1, y1, s=area, c=colors1, alpha=0.4, label='类别A')
plt.scatter(x2, y2, s=area, c=colors2, alpha=0.4, label='类别B')
plt.plot([0, 9.5], [9.5, 0], linewidth='0.5', color='#000000')
plt.legend()
plt.show()

实验小结自己写写就行,本实验仅供参考。

以上是关于可视化实验十:利用Python绘制棒图散点图的主要内容,如果未能解决你的问题,请参考以下文章

100天精通Python(可视化篇)——第82天:matplotlib绘制不同种类炫酷散点图参数说明+代码实战(二维散点图三维散点图散点图矩阵)

数据可视化实验:python数据可视化-柱状图,条形图,直方图,饼图,棒图,散点图,气泡图,雷达图,箱线图,折线图

R数据可视化初阶-散点图散点图矩阵相关系数

python matplotlib绘制 3D图像专题 (三维柱状图曲面图散点图曲线图合集)

R语言可视化:散点图散点图和折线图(line charts)3D散点图旋转3D散点图气泡图corrgram包可视化相关性矩阵马赛克图( Mosaic plots)hexbin密度图

Python实现彩色散点图绘制(利用色带对散点图进行颜色渲染)