Python可视化常用方法和常见问题解决方案
传送门:
柱状图详细绘制解答
matplotlib绘图函数常用参数指南
绘图时坐标轴标签重叠解决办法
设置图形字体大小
雷达图
绘图常用颜色
好看的饼状图
matplotlib.rcParams['axes.unicode_minus'] = False # 正常显示负号
plt.rcParams["font.sans-serif"] = "SimHei" # 设置图片中的字体为中文黑体
横轴坐标值显示方向调整
python中用matplotlib画图时,横坐标标签是默认横着显示的
这个图里面显示的横轴坐标值是竖着的,看起来不太美观,把它改成横向的,只需要添加下面一句代码
rotation默认是90,即为横着显示,改成360即可正常竖直显示
plt.xticks(rotation=360)
使用DataFrame类型直接绘图
数据集来自2019年美国大学生数学建模C题第一问。
这是是要绘制出U-47700这个物质在每个州的数量分布情况
sum_u = pd.DataFrame({'U-47700':data[data['SubstanceName'] == 'U-47700'].groupby('FIPS_State')['DrugReports'].sum()})sum_u.plot.pie(subplots=True) # 绘制饼状图sum_u.plot(kind='bar') # 绘制柱状图sum_u.plot(kind='line') # 绘制线形图
结果如下:
接下来是绘制多个类别的物质随年度变化的图
sum_year_stat = pd.DataFrame({'Morphine':data[data['SubstanceName'] == 'Morphine'].groupby('YYYY')['DrugReports'].sum(),'Methadone':data[data['SubstanceName'] == 'Methadone'].groupby('YYYY')['DrugReports'].sum(),'Hydromorphone':data[data['SubstanceName'] == 'Hydromorphone'].groupby('YYYY')['DrugReports'].sum(),'Oxymorphone':data[data['SubstanceName'] == 'Oxymorphone'].groupby('YYYY')['DrugReports'].sum(),})# 根据年份来进行分组,然后将对应物质的数量求和。sum_year_stat.plot(kind = 'bar') # 绘制饼状图plt.xlabel('Year') # 设置横坐标轴标签plt.ylabel('Sum')plt.xticks(rotation=360) # 设置横坐标值水平显示
matplotlib
官方文档
pyplot子库
简写为plt
figure对象(可以理解为画布)
常用颜色
粉色:‘pink’
亮粉色:‘lightpink’
亮蓝色:‘lightblue’
plt.figure(figsize=(6, 6))
plt.pie(sexc, labels=['男性', '女性'],colors=['lightblue','lightpink'], autopct='%1.1f%%')
plt.title("会员性别比例饼状图", fontsize=15)
plt.legend()
figure对象——划分子图
当三个参数都小于10时,可以省略逗号,用一个三位数表示三个参数,
例如subplot(2,2,1)等价于subplot(221)
matplolib绘制的图形中默认为英文字体,所以一般中文字体无法显示,只需要把字体改为中文字体即可。
- 设置中文字体
其他常用中文字体
恢复标准默认配置
添加全局标题
subtitle('标题')
subtitle的参数及其可取值
添加子图标题
title('标题')
title函数的主要参数
散点图 scatter()
数据点样式
- text()函数:在指定位置显示文字
坐标轴设置
显示图例
折线图
- plot()函数
柱状图
绘制柱状图,并在图中柱子上显示数字
plt.figure(figsize=(7, 6))
plt.bar(x=sum_year.index, height=sum_year.values)
# 完整的显示坐标轴,避免间隔显示
x = np.arange(2004,2014,1)
plt.xticks(x)
#在柱状图上面显示数字
for x, y in enumerate(sum_year.values):plt.text(2004+x, y+100, '%s' % y, ha='center', va='bottom')
# 设置柱状图标题
plt.title("每一年加入会员人数柱状图")
# 设定X,Y轴标签
plt.xlabel("年份")
plt.ylabel("人数")plt.show()
注意这里x轴坐标是从2004开始,所以在添加数字时,x需要+2004。而y+100是为了在柱子上方一点,避免和柱子重合。
效果图:
keras
keras是一个由Python编写的高层的神经网络和深度学习库。Tensorflow的官方API。
Keras集成的数据集
波士顿房价数据集绘制平均房间数和房价的散点图
13种特征和房价的散点图
色彩映射
鸢尾花数据分类可视化
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
import pandas as pd#加载数据
TRAIN_URL = "http://download.tensorflow.org/data/iris_training.csv"
train_path = tf.keras.utils.get_file(TRAIN_URL.split('/')[-1],TRAIN_URL)COLUMN_NAMES=['SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth', 'Species']
df_iris = pd.read_csv(train_path, names=COLUMN_NAMES, header=0)iris = np.array(df_iris)plt.scatter(iris[:,2], iris[:,3], c=iris[:, 4], cmap='brg')
plt.title("Anderson's Iris Data Set\n (Blue->Setosa | Red->Versicolor | Green->Virginica)")
plt.xlabel(COLUMN_NAMES[2])
plt.ylabel(COLUMN_NAMES[3])
plt.show()
绘制多个子图
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
import pandas as pd# 加载数据
TRAIN_URL = "http://download.tensorflow.org/data/iris_training.csv"
train_path = tf.keras.utils.get_file(TRAIN_URL.split('/')[-1], TRAIN_URL)COLUMN_NAMES = ['SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth', 'Species']
df_iris = pd.read_csv(train_path, names=COLUMN_NAMES, header=0)iris = np.array(df_iris)
# 绘制画布尺寸和整个画布标题
fig = plt.figure('Iris Data', figsize=(15, 15))
# 添加子图总标题
fig.suptitle("Anderson's Iris Data Set\n(Blue->Setosa | Red->Versicolor | Green->Virginica)")# 循环绘制子图
for i in range(4):for j in range(4):plt.subplot(4, 4, 4 * i + (j + 1)) # 创建子图if (i == j): # 横纵坐标相同,输出当前属性名称plt.text(0.3, 0.5, COLUMN_NAMES[i], fontsize=15)else:plt.scatter(iris[:, j], iris[:, i], c=iris[:, 4], cmap='brg') # 绘制散点图if(i==0): # 输出横坐标名称plt.title(COLUMN_NAMES[j])if(j==0): # 输出纵坐标名称plt.ylabel(COLUMN_NAMES[i])# 调整子图间距
plt.tight_layout(rect=[0, 0, 1, 0.93])
plt.show()
使用matplotlib绘图时,负数的符号显示不正常,添加下面的语句。
import matplotlibmatplotlib.rcParams['axes.unicode_minus']=False
参考文献
# 设定画图板尺寸
plt.figure(figsize=(12,16))
# 建立一个循环,输出图片
for i,data in enumerate(xtest[:100]):
# 设定子图,将每个子图输出到对应的位置plt.subplot(10,10,i+1)
# 输出图片,取出来的数据是必须处理好再输出的,此例为8*8plt.imshow(data.reshape(8,8))
# 测试的标题和真实的标题打印出来plt.title('C:'+str(y_[i])+'\nT:'+str(ytrue[:100][i]),size=20)
# 关掉x y轴的刻度plt.axis('off')
# 调整每隔子图之间的距离plt.tight_layout()
图像透明度alpha参数和自动调整坐标间距
plt.figure(figsize=(10, 5))
sns.barplot(x=list(drink["id"]), y=list(drink["Goods"]))
plt.title("非酒精饮料类别中不同商品的销量", fontsize= 15)
plt.xlabel("商品销量")
plt.ylabel("商品类别")
效果图
修改透明度,并设置自动调整间距
plt.figure(figsize=(10, 5))
sns.barplot(x=list(drink["id"]), y=list(drink["Goods"]),alpha=0.4) # 设置透明度alpha=0.4
plt.title("非酒精饮料类别中不同商品的销量", fontsize= 15)
plt.xlabel("商品销量")
plt.ylabel("商品类别")
# plt.xticks(fontsize=5) #设定x坐标标签字体大小
# plt.yticks(fontsize=7) #设定y坐标标签字体大小
plt.tight_layout() # 自动调整坐标轴标签间距。
效果图:
改变透明度alpha之后,色彩更淡跟好看一些,自动调整间距,可以显示完全坐标轴。
自动美化
# 设置风格
plt.style.use('ggplot') # 自动美化图形
Python可视化常用方法和常见问题解决方案相关推荐
- Python可视化——3D绘图解决方案pyecharts、matplotlib、openpyxl
Python可视化--3D绘图解决方案pyecharts.matplotlib.openpyxl 1. pyecharts 2. matplotlib 3. openpyxl 这篇博客将介绍pytho ...
- python注册登陆程序未响应_SpringBoot实现登录注册常见问题解决方案
一.用户名密码都正确的情况下被登录拦截器拦截 控制台报错:org.apache.ibatis.executor.ExecutorException: A query was run and no Re ...
- 8个流行的Python可视化工具包!!!
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 喜欢用 Python 做项目的小伙伴不免会遇到这种情况:做图表时,用哪种好看又实用 ...
- python可视化界面工具_8个流行的 Python可视化工具包,你喜欢哪个?
点击上方"Python编程开发",选择"星标或者置顶" 一起高效学习Python编程开发! 编译:机器之心,作者:Aaron Frederick 喜欢用 Pyt ...
- Python 可视化库
https://www.infoq.cn/article/pSV6tZ1SbUC8qJpo_v8H 在奥斯汀举行的SciPy 2018年特别会议上,大量开源 Python 可视化工具的代表分享了他们对 ...
- 这里有8个流行的Python可视化工具包,你喜欢哪个?
喜欢用 Python 做项目的小伙伴不免会遇到这种情况:做图表时,用哪种好看又实用的可视化工具包呢?之前文章里出现过漂亮的图表时,也总有读者在后台留言问该图表时用什么工具做的.下面,作者介绍了八种在 ...
- 探索性数据分析,这8个流行的 Python可视化工具就够了
来源 / 机器之心 作者 / Aaron Frederick 参与 / 李诗萌.王淑婷 Matplotlib.Seaborn 和 Pandas ggplot(2) Bokeh Plotly Pyga ...
- 这里有 8 个流行的 Python 可视化工具包,你喜欢哪个?
点击"小詹学Python",选择"星标"公众号 重磅干货,第一时间送达 来源:机器之心 作者:Aaron Frederick 参与:李诗萌.王淑婷 喜欢用 P ...
- 太棒了!8 个流行的 Python 可视化工具包,你喜欢哪个?
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习> ...
最新文章
- 北京AI产业联盟来了!百度牵头,小米美团滴滴旷视纷纷入会
- session存入redis或memcached
- python 速度 memmap_浅析Python 读取图像文件的性能对比
- python3.7官网中文官网_Python官网宣布,正式发布Python 3.7.0!
- 完全相同的4个小矩形如图所示放置_吸睛!矩形在PPT中的创意表现
- Java –什么是瞬态字段?
- python时间函数详解_Python 日期的转换及计算的具体使用详解
- 236 Lowest Common Ancestor of a Binary Tree
- TikTok:将禁止加密货币广告投放
- 邀请合作如何表达_共商校院合作,共促产教融合,市卫校这个会议不一般!
- 洛谷P2073 送花 [2017年6月计划 线段树01]
- 高频电子线路复习笔记(2)——高频电路基础
- 博应用教你使用华为nova3添加桌面小工具
- hspace在表格中无效吗html,HTML代码汇总详解
- 关于“访问映射网络驱动器提示 本地设备名已在使用中,此连接尚未还原”的解决方法
- js设置北京时区_JavaScript 实现北京时间转其他时区时间,根据系统对对应时区转换...
- 小心看上去平平无奇的陷阱:如何防范高级渣?
- html手抄报怎么制作,手抄报怎么做
- python航拍无人机视角下多车型车流量检测车流量多车型计数无人机车流检测yolov5
- odoo14 | 视图报错:没有找到模型:xxx
热门文章
- 滑铁卢计算机竞赛福建考点,滑铁卢大学CCC计算机竞赛喜报传来!快来看看这群优秀的小伙伴吧~...
- React 入门(一)
- VMware-ESXi、vCenter、vSphere Client、Datastorage部署
- 没见面,未说话,TA却在风雨里更懂你
- mysql master status_MySQL show master / slave status 命令参数
- 3.Matplotlib数据可视化基础(上)(pyplot、rc参数、散点图、折线图)
- adb shell monkey
- spring导入第三方资源
- MDX查询基础(一)
- goland中出现declared but not used 如何解决