利用Python做简单的数据可视化

article/2025/8/21 21:55:00
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from pylab import mpl
# 正常显示中文标签
mpl.rcParams['font.sans-serif'] = ['KaiTi']
# 正常显示负号
mpl.rcParams['axes.unicode_minus'] = Falseimport warnings
warnings.filterwarnings("ignore")import os
os.chdir(r'C:\Users\\ABC\Desktop')
# 导入数据
data = pd.read_csv('order.csv',encoding='gbk')

数据链接:https://note.youdao.com/s/UGd1nfo1

在这里插入图片描述

# 销售金额饼图
plt.figure(figsize=(4,4),dpi=150)
dataname = data['产品类别']
freq = dataname.value_counts()
colors = ['#99CCFF','#CCFF66','#FFCC99']
plt.pie(freq, labels = freq.index, explode = (0.05, 0, 0), autopct = '%.1f%%', textprops={'fontsize': 12}, colors = colors, startangle = 90, counterclock = False)
plt.axis('square')
plt.legend(loc='upper right', bbox_to_anchor=(1.2, 0.2),prop={'size': 10})
plt.show()

在这里插入图片描述

plt.figure(figsize=(6,3),dpi=150)
color_palette = sns.color_palette()
plt.subplot(121)
sns.countplot('区域',data = data, palette=color_palette)
plt.xlabel('区域',fontsize=10)
plt.xticks(fontsize=10)
plt.tight_layout()plt.subplot(122)
sns.countplot('产品类别',data = data)
plt.xlabel('产品类别',fontsize=10)
plt.xticks(fontsize=10)
plt.tight_layout()

在这里插入图片描述

color = sns.color_palette()
plt.figure(figsize=(15,7))
sns.countplot(x = '产品名称',data = data, order = data['产品名称'].value_counts().index)
plt.xlabel('产品名称',fontsize=15)
plt.ylabel('count',fontsize=15)
plt.xticks(fontsize=15,rotation=45)
plt.yticks(fontsize=15)
plt.show()

在这里插入图片描述

plt.figure(1 , figsize = (10 , 14))
sns.barplot(data["产品型号名称"].value_counts(dropna=False),data["产品型号名称"].value_counts(dropna=False).keys())
plt.xticks(fontsize=13)
plt.yticks(fontsize=13)
plt.xlabel('产品型号名称',fontsize=16)   
plt.show()

在这里插入图片描述

plt.figure(figsize=(7,7))
df = data[['产品成本','利润','单价','销售金额']]
corr = df.corr()
#相关性矩阵的可视化
sns.heatmap(df.corr(), center=0,square=True, linewidths=.5, cbar_kws={"shrink": .5},annot=True, fmt='.1f')
plt.tight_layout()

在这里插入图片描述

# 箱型图
plt.figure(figsize=(13,5))
color = sns.color_palette()
plt.subplot(141)
sns.boxplot(data=data['产品成本'],color=color[1])
plt.xlabel('产品成本',fontsize=15)
plt.yticks(fontsize=15)
plt.tight_layout()plt.subplot(142)
sns.boxplot(data=data['利润'],color=color[2])
plt.xlabel('利润',fontsize=15)
plt.yticks(fontsize=15)
plt.tight_layout()plt.subplot(143)
sns.boxplot(data=data['单价'],color=color[3])
plt.xlabel('单价',fontsize=15)
plt.yticks(fontsize=15)
plt.tight_layout()plt.subplot(144)
sns.boxplot(data=data['销售金额'],color=color[3])
plt.xlabel('销售金额',fontsize=15)
plt.yticks(fontsize=15)
plt.tight_layout()
plt.show()

在这里插入图片描述

#sns.set(rc = {'figure.figsize':(16,10)})
plt.figure(figsize=(12,7))
sns.countplot(x = '区域',hue = '交易类型',data = data)
plt.xlabel('区域',fontsize=15)
plt.yticks(fontsize=15)
plt.show()

在这里插入图片描述

sns.set_style("whitegrid") # 使用whitegrid主题
fig,axes=plt.subplots(nrows=2,ncols=2,figsize=(17,7))
# 正常显示中文标签
mpl.rcParams['font.sans-serif'] = ['KaiTi']
# 正常显示负号
mpl.rcParams['axes.unicode_minus'] = Falsedf = data[['销售大区','国家','区域','产品类别']]for i, item in enumerate(df):plt.subplot(2,2,(i+1))#ax=df[item].value_counts().plot(kind = 'bar')ax=sns.countplot(item,data = df,palette="Pastel1")plt.xlabel(str(item),fontsize=14)   plt.ylabel('Count',fontsize=10)plt.xticks(fontsize=13)plt.yticks(fontsize=13)#plt.title("Churn by "+ str(item))i=i+1plt.tight_layout()
plt.show()

在这里插入图片描述

# 正常显示中文标签
mpl.rcParams['font.sans-serif'] = ['KaiTi']
# 正常显示负号
mpl.rcParams['axes.unicode_minus'] = Falsedf = pd.pivot_table(data, values=["产品成本",'利润','销售金额'], index=["国家"], aggfunc=np.sum)
labels = df.index.tolist()
y1  = [round(i/10000,1) for i in df['产品成本'].values.tolist()]
y2  = [round(i/10000,1) for i in df['利润'].values.tolist()]
y3  = [round(i/10000,1) for i in df['销售金额'].values.tolist()]
plt.rcParams['font.family'] = ['Times New Roman']
fig,ax = plt.subplots(1,1,figsize=(13,6))
width = 0.35  #每根柱子宽度
label_font = {'weight':'bold','size':14,'family':'simsun'
}
x = np.arange(len(labels))
total_width, n = 0.8, 3
width = total_width / n
x = x - (total_width - width) / 2rects1 = ax.bar(x, y1, width, label='产品成本',ec='k',color='w',lw=.8,hatch='xxx')
rects2 = ax.bar(x + width, y2, width, label='利润',ec='k',color='w',lw=.8,hatch='//')
rects3 = ax.bar(x + width * 2, y3, width, label='销售金额',ec='k',color='w',lw=.8,hatch='---')ax.tick_params(which='major',direction='in',length=5,width=1.5,labelsize=11,bottom=False)
# labelrotation=0 标签倾斜角度
ax.tick_params(axis='x',labelsize=11,bottom=False,labelrotation=0)
ax.set_xticks(range(len(labels)))
ax.set_xlabel('国家',fontdict=label_font)
ax.set_ylim(ymin = 0,ymax = 1500)
ax.set_ylabel('单位:万元',fontdict=label_font)
ax.set_xticklabels(labels,fontdict=label_font)
ax.legend(prop =label_font)# 上下左右边框线宽
linewidth = 2
for spine in ['top','bottom','left','right']:ax.spines[spine].set_linewidth(linewidth)def autolabel(rects):for rect in rects:height = rect.get_height()ax.annotate('{}'.format(height),xy=(rect.get_x() + rect.get_width() / 2, height),xytext=(0, 3),  # 3 points vertical offsettextcoords="offset points",ha='center', va='bottom')autolabel(rects1)
autolabel(rects2)
autolabel(rects3)
fig.tight_layout()
plt.show()# 在下图中,中国在产品成本、利润、销售金额均高于其他国家。

在这里插入图片描述

plt.figure(1 , figsize = (10 , 7))
sns.distplot(data['单价'],bins=40)
plt.xlabel('单价',fontsize=15)   
plt.ylabel('Density',fontsize=15)
plt.xticks(fontsize=13)
plt.yticks(fontsize=13)
plt.show()

在这里插入图片描述

# 安装
# pip  install  -i  https://pypi.doubanio.com/simple/  --trusted-host pypi.doubanio.com  pyechartsfrom pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.globals import ThemeType
from pyecharts.faker import Fakerdataname = data['销售大区']
freq = dataname.value_counts()c = (Pie(init_opts=opts.InitOpts(theme=ThemeType.MACARONS)).add("",[list(z) for z in zip(freq.index.tolist(), freq.values.tolist())],# 饼图的半径,数组的第一项是内半径,第二项是外半径# 默认设置成百分比,相对于容器高宽中较小的一项的一半radius=["40%", "75%"],).set_global_opts(title_opts=opts.TitleOpts(title="Pie-Radius"),legend_opts=opts.LegendOpts(orient="vertical", #图例垂直放置pos_top="15%",# 图例位置调整pos_left="2%"),).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
)
c.render_notebook()# 在下图中,销售大区中,中国澳门占比最大

在这里插入图片描述

import pyecharts.options as opts
from pyecharts.charts import Pie
from pyecharts.globals import ThemeTypedataname = data['国家']
freq = dataname.value_counts()
x_data = freq.index.tolist()
y_data = freq.values.tolist()
data_pair = [list(z) for z in zip(x_data, y_data)]
data_pair.sort(key=lambda x: x[1]) # 排序c=(# 初始化Pie(init_opts=opts.InitOpts(width="900px", height="600px",theme=ThemeType.MACARONS)).add(series_name="访问来源",# 系列名称data_pair=data_pair, # 系列数据项,格式为 [(key1, value1), (key2, value2)]# 是否展示成南丁格尔图,通过半径区分数据大小,有'radius'和'area'两种模式。# radius:扇区圆心角展现数据的百分比,半径展现数据的大小# area:所有扇区圆心角相同,仅通过半径展现数据大小rosetype="radius",# 饼图的半径radius="55%",# 饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标# 默认设置成百分比,设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度center=["50%", "50%"],# 标签配置项label_opts=opts.LabelOpts(is_show=False, position="center"),)#全局配置项.set_global_opts(# 设置标题title_opts=opts.TitleOpts(title="Customized Pie",pos_left="center",pos_top="20",title_textstyle_opts=opts.TextStyleOpts(color="#fff"),),# 设置图例legend_opts=opts.LegendOpts(is_show=True),)# 系统配置项.set_series_opts(# 设置提示框tooltip_opts=opts.TooltipOpts(trigger="item", formatter="{a} <br/>{b}: {c} ({d}%)"),label_opts=opts.LabelOpts(color="#3333FF"),)
)c.render_notebook()# 在国家玫瑰图中,中国占比最大

在这里插入图片描述


from pyecharts import options as opts
from pyecharts.charts import Pie
from pyecharts.faker import Faker
from pyecharts.globals import ThemeTypedataname1 = data['区域']
freq1 = dataname1.value_counts()dataname2 = data['产品类别']
freq2 = dataname2.value_counts()c = (Pie(init_opts=opts.InitOpts(theme=ThemeType.MACARONS)).add("",[list(z) for z in zip(freq1.index.tolist(), freq1.values.tolist())],radius=["30%", "75%"],center=["25%", "50%"],rosetype="radius",).add("",[list(z) for z in zip(freq2.index.tolist(), freq2.values.tolist())],radius=["30%", "75%"],center=["75%", "50%"],rosetype="area",).set_global_opts(title_opts=opts.TitleOpts(title=""))
)
c.render_notebook()

在这里插入图片描述


http://chatgpt.dhexx.cn/article/61q1j5Ua.shtml

相关文章

Python做风险控制|找出形成环状投资的公司

大家好&#xff0c;我是小小明。 今天我将带大家利用python找到关系数据的环。先说下需求和背景&#xff1a; 需求描述 某投资机构需要考虑各公司的投资风险&#xff0c;手上一份各公司投资方向的数据&#xff0c;主要字段是投资者和被投资者。 而有部分公司并不是真的投资…

如何用Python做好友管理系统

--------------------------------------------------------总代码在最下面----------------------------------------------------------- &#xff08;1&#xff09;好友管理系统中不仅需要保存好友名称&#xff0c;还需要保存分组以及分组中的好友&#xff0c;因此&#xf…

怎么用python做网站?

python做网站方法步骤&#xff1a; 1、导入django包 可直接在pycharm下载&#xff0c;或者pip/easy_install Django是一个开放源代码的Web应用框架&#xff0c;由Python写成。采用了MTV的框架模式&#xff0c;即模型M&#xff0c;视图V和模版T。它最初是被开发来用于管理劳伦…

用python做一个简单GUI小软件

用python做一个简单软件 前言 这是一个课设&#xff0c;用python做一个扫描王软件 我主要做的GUI部分&#xff0c;记录分享一下。也是第一次用python做小软件&#xff0c;python的方便果然是名不虚传 遇到问题 1.python版本 下载了python3.7的编译器 由于最终软件要在wi…

手把手教你使用Python做数据分析

一、数据分析是什么 数据分析是指用适当的统计分析方法对收集来的大量数据进行分析&#xff0c;将它们加以汇总和理解并消化&#xff0c;以求最大化地开发数据的功能&#xff0c;发挥数据的作用&#xff0c;使得数据的价值最大化 二、数据分析是做什么的 数据分析是为了提取…

你究竟能用Python做什么?

中英文模式阅读 中文模式阅读 英文模式阅读 What exactly can you do with Python? Here are Pythons 3 main applications. 你究竟能用Python做什么&#xff1f;这是Python的3个主要应用。 If youre thinking of learning Python --- or if you recently started learnin…

用Python做图像处理

用Python做图像处理 最近在做一件比较 evil 的事情——验证码识别&#xff0c;以此来学习一些新的技能。因为我是初学&#xff0c;对图像处理方面就不太了解了&#xff0c;欲要利吾事&#xff0c;必先利吾器&#xff0c;既然只是做一下实验&#xff0c;那用 Python 来作原型开发…

python都能做什么

前言 一、python&#xff1a; Python具有丰富和强大的库。它常被昵称为胶水语言&#xff0c;能够把用其他语言制作的各种模块&#xff08;尤其是C/C&#xff09;很轻松地联结在一起。常见的一种应用情形是&#xff0c;使用Python快速生成程序的原型&#xff08;有时甚至是程序…

你都用 Python 来做什么?

你们都用python做些什么呢&#xff1f; 在开发中 python 这一个语言就像是小叮当&#xff0c;而 python 的第三方库则是“百宝箱”&#xff0c;你只要想着对某一个方向进行开发&#xff0c;那么这个“百宝箱”就会给你想要的东西。 由于我是在开发多年后接触到的 python&#…

怎样利用python做一个软件,python可以自己做软件吗

python能做什么软件&#xff1f; 主要可以做小程序&#xff0c;爬虫程序&#xff0c;用于系统编程等等还是很广泛的。Python 的应用领域分为下面几类。下文将介绍一些Python 具体能帮我们做的事情。 但我们不会对各个工具进行深入探讨&#xff0c;如果你对这些话题感兴趣&…

python可以做什么工作-python都能干什么用

一、Python可以做什么&#xff1f; 1、数据库&#xff1a;Python在数据库方面很优秀&#xff0c;可以和多种数据库进行连接&#xff0c;进行数据处理&#xff0c;从商业型的数据库到开放源码的数据库都提供支持。例如&#xff1a;Oracle, My SQL Server等等。有多种接口可以与…

学了python能干啥举例-Python主要用来做什么?

Python主要用来做什么&#xff1f;Python可以做web应用开发、网络爬虫、AI人工智能与机器学习、处理数据用来分析、数据科学&#xff1a;包括机器学习、数据分析和数据可视化、脚本等方面开发。 Python用来开发的有&#xff1a; 1、做Web应用开发 在国内豆瓣一开始就使用Pyth…

python怎么算列表的平方_总算明了python如何求平方

总算明了python如何求平方 日期:2019-08-25 12:22:17 浏览:341 核心提示:打开电脑上的计算器一看,居然没法求平方,是不是就没办法了呢?用python就可以啦,那么python如何求平方呢?一起来了解下吧: python如何求平方 1.计算乘方 pow(4,3) #结果64 2.计算平方 import…

Python 计算平方根

Python 计算平方根 文章目录 Python 计算平方根平方根封装为函数相关博客 平方根 平方根&#xff0c;又叫二次方根&#xff0c;表示为〔√&#xffe3;〕&#xff0c;一个正数有两个实平方根&#xff0c;它们互为相反数&#xff0c;负数没有平方根&#xff0c;0的平方根是0 …

python中平方_python里平方

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01; 我正在写一个函数&#xff0c;它将返回一个平方数列表&#xff0c;但如果该函数使用参数&#xff08;appl…

python平方和计算技巧,python平方和计算技巧 Python算法练习题:四平方和

全栈记事交流群内一个同学的问题&#xff0c;正好收集一下解决方案&#xff1b; 四平方和的定理又称拉格朗日定理&#xff1a;每个正整数都可以表示至多4个正整数的平方和。如果把0包括进去&#xff0c;就可以表示为4个数的平方和。 比如&#xff1a; 50^20^21^22^2 71^21^21^2…

python中平方根_如何在Python中找到平方根

python中平方根 Hello everyone, in this tutorial, I’ll show 3 ways to find square root in Python. 大家好,在本教程中,我将展示3种在Python中找到平方根的方法。 Let’s see how to do it. 让我们来看看如何做。 1. Using Exponent 1.使用指数 number = int(input(&…

python编程a的x次方_python平方-Python,平方

本教程分享&#xff1a;《python平方》&#xff0c;Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言&#xff0c;最初被设计用于编写自动化脚本(shell)&#xff0c;随着版本的不断更新和语言新功能的添加&#xff0c;越来越多被用于独立的、大型项目的开…

python里的平方_python中平方和

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 为什么python给出了“错误”的答案? x= 16 sqrt= x**(.5)returns 4 sqrt= x**(12)returns 1... 方法一:使用内置模块>>> import math >>> …

python平方数_python数字平方

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 还是要强调一下python的变量和数据类型的关系,变量只是对某个对象的引用或者说代号、名字、调用等等,变量本身没有数据类型的概念 。 只有1,hello这一类对象…