(3-1-02)绘制散点图和折线图:绘制散点图(2)

3.1.6  修改散点的形状

请看下面的实例文件dian06.py,功能是使用Matplotlib函数scatter()绘制散点图,然后使用函数scatter()的属性marker设置散点的形状。

源码路径:codes\3\3-1\dian06.py

import matplotlib.pyplot as plt
import numpy as np

N = 10                  					# 10个点
x = np.random.rand(N)
y = np.random.rand(N)
s = (30*np.random.rand(N))**2
c = np.random.rand(N)
plt.scatter(x, y, s=s, c=c, marker='^', alpha=0.5)
plt.show()

执行效果如图3-6所示。

图3-6  执行效果

3.1.7  绘制两组数据的散点图

请看下面的实例文件dian07.py,功能是使用Matplotlib函数scatter()绘制了两组数据的散点图,然后使用函数scatter()的属性marker设置了这两组散点图的形状。

源码路径:codes\3\3-1\dian07.py

import matplotlib.pyplot as plt
import numpy as np
N = 10                                  # 10个点
x1 = np.random.rand(N)
y1 = np.random.rand(N)
x2 = np.random.rand(N)
y2 = np.random.rand(N)
plt.scatter(x1, y1, marker='o')
plt.scatter(x2, y2, marker='^')
plt.show()

执行效果如图3-7所示。

图3-7  执行效果

3.1.8  为散点图设置图例

图例是集中于地图一角或一侧的地图上各种符号和颜色所代表内容与指标的说明,有助于更好的认识地图。请看下面的实例文件dian08.py,首先使用函数scatter()绘制了两组数据的散点图,然后使用Matplotlib函数scatter()的属性marker设置了这两组散点图的形状,最后用函数scatter()的属性label设置了这两组散点图的图例。

源码路径:codes\3\3-1\dian08.py

import matplotlib.pyplot as plt
import numpy as np

N = 10                          # 10个点
x1 = np.random.rand(N)
y1 = np.random.rand(N)
x2 = np.random.rand(N)
y2 = np.random.rand(N)
plt.scatter(x1, y1, marker='o', label="circle")
plt.scatter(x2, y2, marker='^', label="triangle")
plt.legend(loc='best')
plt.show()

执行效果如图3-8所示。

图3-8  执行效果

3.1.9  自定义散点图样式

在现实应用中,经常需要绘制散点图并设置各个数据点的样式。例如,可能想以一种颜色显示较小的值,而用另一种颜色显示较大的值。当绘制大型数据集时,还需要对每个点都设置同样的样式,再使用不同的样式选项重新绘制某些点,这样可以突出显示它们的效果。在Matplotlib库中,可以使用函数scatter()绘制单个点,通过传递x点和y点坐标的方式在指定的位置绘制一个点。例如在下面的实例文件dian09.py中,演示了使用matplotlib绘制指定样式散点图的过程。

源码路径:codes\3\3-1\dian09.py

import matplotlib.pyplot as plt
from pylab import *  
mpl.rcParams['font.sans-serif'] = ['SimHei'] #指定默认字体  
  
mpl.rcParams['axes.unicode_minus'] = False #解决保存图像是负号'-'显示为方块的问题  
x_values = list(range(1, 1001))
y_values = [x**2 for x in x_values]

plt.scatter(x_values, y_values, c=(0, 0, 0.8), edgecolor='red', s=40)

# 设置图标标题,并设置坐标轴标签.
plt.title("大中华区销售统计表", fontsize=24)
plt.xlabel("节点", fontsize=14)
plt.ylabel("销售数据", fontsize=14)

# 设置刻度大小.
plt.tick_params(axis='both', which='major', labelsize=14)

# 设置每个坐标轴的取值范围
plt.axis([0, 110, 0, 1100])

plt.show()

(1)第2、3、4行代码:导入字体库,设置中文字体,并解决负号“−”显示为方块的问题。

(2)第5和第6行代码:使用Python循环实现自动计算数据功能,首先创建了一个包含x值的列表,其中包含数字1~1000。接下来创建一个生成y值的列表解析,它能够遍历x值(for x in x_values),计算其平方值(x**2),并将结果存储到列表y_values中。

(3)第7行代码:将输入列表和输出列表传递给函数scatter()。另外,因为matplotlib允许给散列点图中的各个点设置一个颜色,默认为蓝色点和黑色轮廓。所以当在散列点图中包含的数据点不多时效果会很好。但是当需要绘制很多个点时,这些黑色的轮廓可能会粘连在一起,此时需要删除数据点的轮廓。所以在本行代码中,在调用函数scatter()时传递了实参:edgecolor='none'。为了修改数据点的颜色,在此向函数scatter()传递参数c,并将其设置为要使用的颜色的名称“red”。

注意:颜色映射(Colormap)是一系列颜色,它们从起始颜色渐变到结束颜色。在可视化视图模型中,颜色映射用于突出数据的规律,例如可能需要用较浅的颜色来显示较小的值,并使用较深的颜色来显示较大的值。在模块pyplot中内置了一组颜色映射,要想使用这些颜色映射,需要告诉pyplot应该如何设置数据集中每个点的颜色。

(4)第15行代码:因为这个数据集较大,所以将点设置得较小,在本行代码中使用函数axis()指定了每个坐标轴的取值范围。函数axis()要求提供四个值:x和y坐标轴的最小值和最大值。此处将x坐标轴的取值范围设置为0~110,并将y坐标轴的取值范围设置为0~1100。

(5)第16行(最后一行)代码:使用函数plt.show()显示绘制的图形。当然也可以让程序自动将图表保存到一个文件中,此时只需将对plt.show()函数的调用替换为对plt.savefig()函数的调用即可。

plt.savefig (' plot.png' , bbox_inches='tight' )

在上述代码中,第1个实参用于指定要以什么样的文件名保存图表,这个文件将存储到当前实例文件dianyang.py所在的目录中。第2个实参用于指定将图表多余的空白区域裁剪掉。如果要保留图表周围多余的空白区域,可省略这个实参。

执行效果如图3-9所示。

图3-9  执行效果

3.1.10  使用pygal绘制散点图

在Python程序中,可以使用库pygal实现数据的可视化操作功能,生成SVG格式的图形文件。SVG是一种常见的数据分析文件格式,是一种矢量图格式,全称是Scalable Vector Graphics,被翻译为可缩放矢量图形。我们可以使用浏览器打开SVG文件,可以方便的与之交互。对于需要在尺寸不同的屏幕上显示的图表,SVG会变得很有用,可以自动缩放,自适应观看者的屏幕。例如在下面的实例文件dian10.py中,演示了使用pygal绘制指定样式散点图的过程。

源码路径:codes\3\3-1\dian10.py

import random

import pygal

scatter_plot_chart = pygal.XY(stroke=False)
scatter_plot_chart.title = "散点图"
list_a = []
list_b = []
list_c = []
for i in range(20):
    a = random.uniform(0,5)
    b = random.uniform(0,5)
    list_a.append((a,b))
for j in range(20):
    a = random.uniform(0,5)
    b = random.uniform(0,5)
    list_b.append((a,b))
for s in range(20):
    a = random.uniform(0,5)
    b = random.uniform(0,5)
    list_c.append((a,b))
scatter_plot_chart.add('A', list_a)
scatter_plot_chart.add('B', list_b)
scatter_plot_chart.add('C', list_c)
scatter_plot_chart.render_to_file('xy_scatter_plot.svg')

执行后会生成文件xy_scatter_plot.svg,用浏览器打开这个文件后会看到绘制的散点图,将鼠标放在某个散点时会悬浮显示这个点的值。如图3-10所示。

图3-10  绘制的散点图

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以为您提供一些参考代码和步骤,来绘制散点图折线图和柱状图。 首先,我们需要使用Python的pandas和matplotlib库来处理和可视化数据。假设您已经将2021年各国GDP数据保存在一个名为“gdp.xlsx”的Excel文件中,并将其保存在与您的Python代码相同的目录中。 步骤1:导入必要的库 ```python import pandas as pd import matplotlib.pyplot as plt ``` 步骤2:读取Excel文件并处理数据 ```python # 读取Excel文件 df = pd.read_excel('gdp.xlsx', sheet_name='Sheet1') # 选择需要绘制的数据列 countries = df['Country'] gdp_values = df['GDP'] # 打印数据 print(countries) print(gdp_values) ``` 步骤3:绘制散点图 ```python # 设置图形大小和标题 plt.figure(figsize=(10, 6)) plt.title('2021 GDP') # 绘制散点图 plt.scatter(countries, gdp_values) # 设置x轴标签旋转角度 plt.xticks(rotation=90) # 显示图形 plt.show() ``` 步骤4:绘制折线图 ```python # 设置图形大小和标题 plt.figure(figsize=(10, 6)) plt.title('2021 GDP') # 绘制折线图 plt.plot(countries, gdp_values) # 设置x轴标签旋转角度 plt.xticks(rotation=90) # 显示图形 plt.show() ``` 步骤5:绘制柱状图 ```python # 设置图形大小和标题 plt.figure(figsize=(10, 6)) plt.title('2021 GDP') # 绘制柱状图 plt.bar(countries, gdp_values) # 设置x轴标签旋转角度 plt.xticks(rotation=90) # 显示图形 plt.show() ``` 这样,您就可以使用Python绘制散点图折线图和柱状图了。当然,您还可以使用其他库和方法来进行数据处理和可视化,这里只是提供一种参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农三叔

感谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值