基于python的图表生成系统,python如何制作图表

大家好,本文将围绕基于python的图表生成系统展开说明,python如何制作图表是一个很多人都想弄明白的事情,想搞清楚python制作简单图形需要先了解以下几个事情。

大家好,小编为大家解答基于python的图表生成系统的问题。很多人还不知道python做图表的模块有哪些,现在让我们一起来看看吧!

案例01 在python中制作简单的图表

import matplotlib.pyplot as plt  #  导入matplotlib模块
x = [1, 2, 3, 4, 5, 6] # 给出x坐标的数据
y = [2, 4, 6, 8, 10, 12] # 给出y坐标的数据
plt.plot(x, y, color = 'red', linewidth = 3, linestyle = 'solid')  # 绘制折线图
plt.show() # 显示绘制的图表

运行结果:

 

知识延伸

1、plot()是Matplotlib模块的函数,用于绘制折线图python创意作品

语法格式:

plot(x,y,color,linewidth,linestyle)

参数说明
xx坐标的值
yy坐标的值
color

折线的颜色python创意作品。Matplotlib模块支持多种格式定义的颜色,常用的有

  • 用颜色的单词或其简写定义的8种基础颜色
  • 用RGB值的浮点数元组定义的颜色,RGB值通常是用0~255的十进制整数表示的
  • 用RGB值的十六进制字符串定义的颜色,如‘#33FF00’,其与(51,255,0)是相同的RGB颜色,可以搜索“十六进制颜色码转换工具”来获取更多颜色
linewidth折线的粗细
linestyle折线的类型。用特定含义的字符串表示,如:实线用‘-’或‘solid’表示

 2、show()是Matplotlib模块的函数,用于显示绘制的图表。

在python中绘制柱形图
import matplotlib.pyplot as plt  
x = [1, 2, 3, 4, 5, 6]
y = [50, 60, 80, 78, 95, 70]
plt.bar(x, y, width = 0.8, align = 'center', color = 'blue')  # 绘制柱形图
plt.show()

运行结果:

 

bar()就是Matplotlib模块中用于制作柱形图的函数。

语法格式:

bar(x,height,width=0.8,bottom=None,align='center',color,edgecolor,linewidth)

参数说明
xx坐标的值
heighty坐标的值,也就是每根柱子的高度
width柱子的宽度,默认值为0.8
bottom每根柱子的底部的y坐标值
align柱子的位置与x坐标的关系。默认值为‘center’,表示柱子与x坐标居中对齐;如为‘edge’,表示柱子与x坐标左对齐
color柱子的填充颜色
edgecolor柱子的边框颜色
linewidth柱子的边框粗细

在python中绘制条形图
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [60, 25, 78, 50]
plt.barh(x, y, align = 'center', color = 'blue')  # 绘制条形图
plt.show()

运行结果:

 

barh()就是Matplotlib模块中用于绘制条形图的函数。

语法格式:

barh(y,width,height=0.8,left=None,align='center',color,edgecolor,linewidth)

参数说明
yy坐标的值
widthx坐标的值,也就是每根条形的宽度
height条形的高度,默认值为0.8
left每根条形的左侧边缘的x坐标值
align

条形的位置与y坐标的关系。默认值为‘center’,表示条形与y坐标居中对齐;如为‘edge’,表示条形的底部与y坐标对齐

color条形的填充颜色
edgecolor条形的边框颜色
linewidth条形的边框粗细
在python中制作饼图
import matplotlib.pyplot as plt  
x = [25, 45, 69, 30, 80, 12]
plt.pie(x)  # 根据x坐标值绘制饼图
plt.show()

运行结果:

 

案例02 在python中导入Excel数据制作简单的图表——销售业绩表.xlsx

导入数据制作柱形图
import pandas as pd
import matplotlib.pyplot as plt
import xlwings as xw
df = pd.read_excel('销售业绩表.xlsx') # 从指定工作簿中读取数据
figure = plt.figure() # 创建一个绘图窗口
plt.rcParams['font.sans-serif'] = ['SimHei']  # 为图表中的中文文本设置默认字体,以避免中文显示乱码问题
plt.rcParams['axes.unicode_minus'] = False # 解决坐标值为负数时无法正常显示负号的问题
x = df['月份']  # 指定“月份”列为x坐标的值
y = df['销售额'] # 指定“销售额”列为y坐标的值
plt.bar(x, y, color = 'black') # 制作柱形图
app = xw.App(visible = False) # 启动Excel程序
workbook = app.books.open('销售业绩表.xlsx') # 打开要插入图表的工作簿
worksheet = workbook.sheets['销售业绩'] # 选中要插入图表的工作表
worksheet.pictures.add(figure, left = 500) # 在工作表中插入柱形图
workbook.save()
workbook.close()
app.quit()

运行结果:

知识延伸

SimHei是黑体的英文名称,如果想使用其他字体,可参考如下的常用字体名称中英文对照表

字体中文名称字体英文名称字体中文名称字体英文名称
黑体SimHei仿宋FangSong
微软雅黑Microsoft YaHei楷体KaiTi
宋体SimSun细明体MingLiU
新宋体NSimSun新细明体PMingLiU
 
导入数据制作散点图
import pandas as pd
import matplotlib.pyplot as plt
import xlwings as xw
df = pd.read_excel('销售业绩表.xlsx')
figure = plt.figure()
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = df['月份']
y = df['销售额']
plt.scatter(x, y, s = 500, color = 'red', marker = '*')  # 制作散点图
app = xw.App(visible = False)
workbook = app.books.open('销售业绩表.xlsx')
worksheet = workbook.sheets['销售业绩']
worksheet.pictures.add(figure, left = 500)
workbook.save()
workbook.close()
app.quit()

运行结果:

 

scatter()是Matplotlib模块中用于制作散点图的函数,参数marker用于设置散点图中每个点的形状。 

导入数据制作面积图
import pandas as pd
import matplotlib.pyplot as plt
import xlwings as xw
df = pd.read_excel('销售业绩表.xlsx')
figure = plt.figure()
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = df['月份']
y = df['销售额']
plt.stackplot(x, y, colors = 'red') # 制作面积图
app = xw.App(visible = False)
workbook = app.books.open('销售业绩表.xlsx')
worksheet = workbook.sheets['销售业绩']
worksheet.pictures.add(figure, left = 500)
workbook.save()
workbook.close()
app.quit()

运行结果:

 

stackplot()是Matplotlib模块中用于制作面积图的函数。

语法格式:

stackplot(x,y,labels,colors)

参数说明
xx坐标的值
yy坐标的值
labels图表的图例名
colors图表的颜色

案例03 在python中制作组合图表——销售业绩表1.xlsx

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('销售业绩表1.xlsx')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = df['月份']  # 指定数据中的“月份”列为x坐标的值
y1 = df['销售额']  # 指定数据中的“销售额”列为y坐标的第1组值
y2 = df['利润'] # 指定数据中的“利润”列为y坐标的第2组值
plt.plot(x, y1, color = 'black', linewidth = 4) # 用x坐标和第1组y坐标制作折线图
plt.bar(x, y2, color = 'blue') # 用x坐标和第2组y坐标制作柱形图
plt.show()

运行结果:

 

 知识延伸

组合图表的制作和单个图表的制作方法基本相同,区别在于单个图表中的x和y坐标的值都只有一组,而组合图表的x坐标的值可能会被两组y坐标的值共用,或者y坐标的值会被两组x坐标的值共用。在制作组合图表时,只需要为图表设置两组x坐标值或两组y坐标值,然后制作两个图表即可。

制作双折线图
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('销售业绩表1.xlsx')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x1 = df['月份']
y1 = df['销售额']
y2 = df['利润']
plt.plot(x1, y1, color = 'red', linewidth = 3, linestyle = 'solid')
plt.plot(x1, y2, color = 'black', linewidth = 3, linestyle = 'solid')
plt.show()

运行结果:

 

案例04 添加并设置图表标题和坐标轴标题——销售业绩表.xlsx

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('销售业绩表.xlsx')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = df['月份']  # 指定数据中的“月份”列为x坐标的值
y = df['销售额'] # 指定数据中的”销售额“列为y坐标的值
plt.bar(x, y, color = 'black')  # 制作柱形图
plt.title(label = '各月销售额对比图', fontdict = {'family' : 'KaiTi', 'color' : 'red', 'size' : 20}, loc = 'left') # 添加并设置图表标题
plt.xlabel('月份', fontdict = {'family' : 'SimSun', 'color' : 'black', 'size' : 15}, labelpad = 10) # 添加并设置x轴标题
plt.ylabel('销售额', fontdict = {'family' : 'SimSun', 'color' : 'black', 'size' : 15}, labelpad = 10) # 添加并设置y轴标题
plt.show()

运行结果:

 

知识延伸

1、title()是Matplotlib模块中的函数,用于给图表添加和设置标题。

语法格式:

title(label,fontdict=None,loc='center',pad=None)

参数说明
label图表标题的文本内容
fontdict图表标题的字体、字号和颜色等
loc图表标题的显示位置。默认值为‘center’,表示在图表上方居中显示。还可以设置为‘left’或‘right’,表示在图表上方靠左或靠右显示
pad图表标题到图表坐标系顶端的距离

 2、xlabel()和ylabel()是Matplotlib模块中的函数,分别用于添加和设置x、y轴的标题。

语法格式:

xlabel/ylabel(label,fontdict=None,labelpad=None)

参数说明
label坐标轴标题的文本内容
fontdict坐标轴标题的字体、字号和颜色等
labelpad坐标轴标题到坐标轴的距离
添加图例
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('销售业绩表.xlsx')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = df['月份']
y = df['销售额']
plt.bar(x, y, color = 'red', label = '销售额')  # 制作柱形图并设置图例名
plt.legend(loc = 'upper left', fontsize = 20) # 添加并设置图例
plt.show()

运行结果:

 legend()是Matplotlib模块中的函数,用于为图表添加并设置图例。

语法格式:

legend(loc,fontsize,facecolor,edgecolor,shadow=False)

参数说明
loc图例的显示位置。取值为特定的字符串,常用的有‘upper left’、‘upper right’、‘lower left’、‘lower right’,分别表示左上角、右上角、左下角、右下角
fontsize图例名的字号
facecolor图例框的背景颜色
edgecolor图例框的边框颜色
shadow是否给图例框添加阴影,默认值为False,表示不添加阴影

案例05 添加并设置数据标签——销售业绩表.xlsx

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('销售业绩表.xlsx')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = df['月份']
y = df['销售额']
plt.plot(x, y, color = 'red', linewidth = 3, linestyle = 'solid') # 制作折线图
for a,b in zip(x, y):
    plt.text(a, b, b, fontdict = {'family' : 'KaiTi', 'color' : 'red', 'size': 20}) # 添加并设置数据标签
plt.show()

运行结果:

知识延伸

1、zip()是python的内置函数,它以可迭代的对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表。

语法格式:

zip([iterable,…])

iterable:指一个或多个可迭代的对象

2、text()是Matplotlib模块中的函数,用于为图标添加并设置数据标签。

语法格式:

text(x,y,s,fontdict=None)

参数说明
x数据标签的x坐标
y数据标签的y坐标
s数据标签的文本内容
fontdict可选参数,用于设置数据标签的字体、字号、颜色等
 
设置y轴的取值范围
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('销售业绩表.xlsx')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = df['月份']
y = df['销售额']
plt.plot(x, y, color = 'red', linewidth = 3, linestyle = 'solid')
plt.ylim(0, 1200000) # 设置y轴的取值范围
for a,b in zip(x, y):
    plt.text(a, b, b, fontdict = {'family' : 'KaiTi', 'color' : 'red', 'size': 20})
plt.show()

运行结果:

 ylim()是Matplotlib模块中用于为图表设置y轴取值范围的函数。

语法格式:

ylim(num1,num2)

参数:

num1:y轴的最小值

num2:y轴的最大值

案例06 为组合图表添加并设置次坐标——销售业绩表2.xlsx

import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('销售业绩表2.xlsx')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = df['月份'] # 指定数据中的”月份“列为坐标的值
y1 = df['销售额'] # 指定数据中的”销售额“列为y坐标的第1组值
y2 = df['同比增长'] # 指定数据中的”同比增长“列为y坐标的第2组值
plt.bar(x, y1, color = 'grey', label = '销售额') # 制作柱形图
plt.legend(loc = 'upper left', fontsize = 20) # 为柱形图添加和设置图例
plt.twinx() # 为图表设置双坐标轴
plt.plot(x, y2, color = 'black', linewidth = 3, label = '同比增长') # 制作折线图
plt.legend(loc = 'upper right', fontsize = 20) # 为折线图添加和设置图例
plt.show()

运行结果:

twinx()是Matplotlib模块中的函数,用于为图表设置双坐标轴。该函数没有参数,可直接使用。 

添加并设置网格线——销售业绩表.xlsx
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('销售业绩表.xlsx')
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
x = df['月份']
y = df['销售额']
plt.plot(x, y, color = 'black', linewidth = 3, linestyle = 'solid')
plt.grid(b = True, axis = 'y', color = 'red', linestyle = 'dashed', linewidth = 1) # 为y轴添加并设置网格线
plt.show()

运行结果:

 grid()是Matplotlib模块中的函数,用于为图表添加并设置网格线。

语法格式:

grid(b,which,axis,color,linestyle,linewidth)

参数说明
b如果为True,表示显示网格线;如果为False,表示不显示网格线
which要设置哪种类型的网格线。取值为‘major’、‘minor’、‘both’,分别表示只设置主要网格线、只设置次要网格线、两者都设置
axis要设置哪个轴的网格线。取值为‘x‘,’y‘,’both',分别表示只设置x轴的网格线、只设置y轴的网格线、两者都设置
color网格线的颜色
linestyle网格线的线型
linewidth网格线的粗细

使用Python制作简单的图表并设置图表元素,这些案例中使用到的数据文件请点击这里 【免费】使用Python制作简单的图表并设置图表元素所用到的数据.zip资源-CSDN文库

  • 19
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CPK图表是一种通过数据分析来判断一个过程是否符合规范的工具。Python在数据分析和可视化方面已经成为了非常流行的工具之一,因此我们可以使用Python生成CPK图表。 首先,需要安装Python的一些数据分析包,如numpy、pandas和matplotlib等。接下来,可以使用Pandas读取需要分析的数据文件,并使用numpy进行相关分析,计算出过程的标准差和平均值。在cpk图表中,数据分别以红色、黄色和绿色的阶段来表示其符合度,通常情况下,红色阶段代表过程不符合要求,黄色阶段意味着过程存在一定的风险,而绿色阶段则意味着过程是安全的。 接下来,使用matplotlib可视化包来绘制CPK图表。需要清晰地标记出过程的标准差和平均值,以及不同阶段的数据范围和平均值的距离。需要注意的是,在使用Python生成CPK图表时,需要选择合适的阈值以区分不同的阶段,过低或过高的阈值会影响到分析结果的准确性。 总的来说,Python可以方便地帮助我们生成CPK图表,通过数据分析得出一个过程的符合度,为问题的解决提供一些指导和参考。 ### 回答2: CPK图表是一种用来评估特定过程的稳定性和能力的统计工具,它通常用于生产与质量管理。而Python是一种流行的高级编程语言,多用于数据科学、人工智能、机器学习等领域。因此,使用Python生成CPK图表是很有意义的。 Python的包括了许多三方库,例如numpy、pandas和matplotlib等等,这些库都提供相应的函数和方法用于数据处理和可视化。首先,将所需数据读取到Python编程环境中并转换成NumPy数组,然后计算出该数据的平均数和标准差。接下来,根据CPK图表的标准计算出对应的上限和下限,将其转化到正态分布曲线上,然后调用matplotlib库中的函数将曲线和实际数据的直方图画出来并做对比,最后再将上下限的范围标注在图上,从而生成CPK图表。 以Python中的matplotlib包为例,以下是简要的代码示例: ```python import numpy as np import matplotlib.pyplot as plt data = np.random.normal(size=1000) # 示例数据,可以替换为自己的数据 mean = np.mean(data) std = np.std(data) # 计算CPK上限和下限 cpk_upper = mean + 3 * std cpk_lower = mean - 3 * std # 绘制正态分布曲线和实际数据的直方图 plt.hist(data, bins=30, density=True, alpha=0.7) xmin, xmax = plt.xlim() x = np.linspace(xmin, xmax, 100) p = ((1 / (np.sqrt(2 * np.pi) * std)) * np.exp(-0.5 * (x - mean) ** 2 / std ** 2)) plt.plot(x, p, 'k', linewidth=2) plt.title("CPK Chart") plt.xlabel("Values") plt.ylabel("Frequency") # 标注CPK上下限范围 plt.axvline(x=cpk_upper, color='red', ls='--') plt.axvline(x=cpk_lower, color='red', ls='--') plt.show() ``` 运行完以上程序,便可以得到一个形象清晰、直观展示该过程稳定性和能力的CPK图表。 ### 回答3: CPK图表是通过测量过程能力指标来分析质量控制的图表Python提供了众多库来生成CPK图表,其中最常用的是Matplotlib和Seaborn。 Matplotlib是一个用于绘制数据可视化的Python库。它提供了绘制直方图、散点图、线图、饼图等各种类型的图表。要生成CPK图表,需要定义数据的上限(Upper Specification Limit,USL)、下限(Lower Specification Limit,LSL)、过程平均值(Process Mean,PM)和过程标准差(Process Standard Deviation,PSD)。通过这些数据,可以生成直方图和正态分布曲线。 Seaborn是基于Matplotlib的一个高级数据可视化库,它提供了更丰富的默认设置、主题、调色板和绘图函数。在生成CPK图表时,Seaborn可以更方便地绘制直方图和正态分布曲线。只需要传入数据和规格限制,就可以自动生成CPK图表。 除了Matplotlib和Seaborn外,还有其他一些库可以生成CPK图表,例如Plotly,它可以生成交互式和动态的CPK图表,可以方便地探索和比较数据。另外,也可以使用Excel和Minitab等软件来生成CPK图表,但它们需要额外的安装和培训成本。 总之,Python提供了丰富的库和函数来生成CPK图表。通过选择适合自己的库和参数,可以快速地分析过程能力和质量控制数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值