python matplotlib数据作图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python matplotlib数据作图相关的知识,希望对你有一定的参考价值。
请问下这个用python怎么用matplotlib来处理成图形啊?
一、使用numpy生成长度为100的等差序列作为自变量,命名为x,并使用三角函数SiNx和cosx**2生成两个因变量,命名为y和Z。
二、设置画布的大小、颜色、宽度、类型和标签。
三、通过plt.figure(figsize=(10,6))的画布。图((10,6))。
四、尝试plt.plot(x,y,color='red',linewidth=2,label='$\\sinx$')和plt.plot(x,z,'b--',label='$\\cosx^2$')。
五、分通过plt.xlabel('T')和plt.ylabel('V')设置X和Y轴的轴标签;并通过plt.title('V changes by T')为图形设置标题。
六、Y[:,0]=Y[:,0]*888表示修改第一个数据并将其展开888次;之后,使用上述设置时保持不变,发现另一行几乎是一条直线。
参考技术A1、使用numpy生成一个长度为100的等差数列作为自变量,命名为x,分别使用三角函数sinx和cosx**2生成2个因变量,命名为y和z。
2、设置画布的尺寸大小和图形颜色、线条宽度、线条类型、图形标签等。
3、通过plt.figure(figsize=(10,6))设计一个10*6的画布。
4、尝试plt.plot(x,y,color='red',linewidth=2,label='$\\sinx$')和plt.plot(x,z,'b--',label='$\\cosx^2$')。
5、分别通过plt.xlabel('T')和plt.ylabel('V')设置X和Y轴的轴标签;通过plt.title('V changes by T')为图形设置标题。
6、y[:,0]=y[:,0]*888表示修改第一个数据,扩大888倍;后面沿用上面设置不变,发现另一条线几乎成为一条直线。
参考技术B主要使用的是bar函数
效果还不错吧~
import numpy as np
plt.rc('font', family='SimHei', size=13)
num = np.array([13325, 9403, 9227, 8651])
ratio = np.array([0.75, 0.76, 0.72, 0.75])
men = num * ratio
women = num * (1-ratio)
x = ['聊天','支付','团购\\n优惠券','在线视频']
width = 0.5
idx = np.arange(len(x))
plt.bar(idx, men, width, color='red', label='男性用户')
plt.bar(idx, women, width, bottom=men, color='yellow', label='女性用户')
plt.xlabel('应用类别')
plt.ylabel('男女分布')
plt.xticks(idx+width/2, x, rotation=40)
plt.legend()本回答被提问者和网友采纳 参考技术C 大叔大叔的
不用写一行Python代码,就可以用Matplotlib绘图,妈妈再也不担心我不会作图了!
本文禁止任何人转载!
sviewgui介绍
sviewgui是一个基于 PyQt 的 GUI,用于 csv 文件或 Pandas 的 DataFrame 的数据可视化。此 GUI 基于 matplotlib,您可以通过多种方式可视化您的 csv 文件。主要特点:
- Ⅰ 散点图、线图、密度图、直方图和箱线图类型;
- Ⅱ 标记大小、线宽、直方图的 bin 数量、颜色图的设置(来自 cmocean);
- Ⅲ 将图另存为可编辑的 PDF;
- Ⅳ 绘制图形的代码可用,以便它可以在 sviewgui 之外重用和修改;
这个包用法超级简单,它只有一种方法:buildGUI()。此方法可以传入零个或一个参数。您可以使用 csv 文件的文件路径作为参数,或者使用 pandas 的DataFrame对象作为参数。类似代码写法如下:
# 第一种形式
import sviewgui.sview as sv
sv.buildGUI()
# 第二种形式
import sviewgui.sview as sv
FILE_PATH = "User/Documents/yourdata.csv"
sv.buildGUI(FILE_PATH)
# 第三种形式
import sviewgui.sview as sv
import pandas as pd
FILE_PATH = "User/Documents/yourdata.csv"
df = pd.read_csv(FILE_PATH)
sv.buildGUI(df)
上面代码,只是用于帮助我们打开这个GuI可视化界面。
最后强调一点,由于这个库是基于matplotlib可视化的,因此seaborn风格同样适用于这里,因为seaborn也是基于matplotlib可视化的。
sviewgui安装
这个库的依赖库相当多,因此大家直接采用下面这行代码安装sviewgui库。
pip install sviewgui -i https://pypi.tuna.tsinghua.edu.cn/simple/ --ignore-installed
后面这个--ignore-installed
,我最开始是没加的,但是报错了,大致错误如下:
ERROR: Cannot uninstall 'certifi'. It is a distutils installed project and thus we cannot
accurately determine which files belong to it which would lead to only a partial uninstall.
大家直到加这个就行,不用管为什么,因为我也不知道!
sviewgui使用
上面我为大家介绍了3种打开GUI图形界面窗口的代码,这里仅介绍下面这种方法:
import sviewgui.sview as sv
sv.buildGUI()
截图如下:
当你在命令行输入上述代码后,会驱动后台打开这个图形化界面窗口,初始化状态大致是这样的:
点击上述select,可以选择数据源:
然后我们可以点击左侧菜单栏
,生成对应的图形。但是有一点,貌似不支持中文!!!
如果你觉得这里的参数,不足以完善你想要的图形,你可以复制图形所对应的Python代码,简单修改即可。
然后,你拿着下面的代码,简单修改,就可以生成漂亮的Matplotlib图形了。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import cmocean
#2021/07/13 08:03:18
#- Import CSV as DataFrame ----------
FILE_PATH = 'C:/Users/Administrator/Desktop/plot.csv'
DATA = pd.read_csv(FILE_PATH)
#- Axes Setting ----------
fig, ax = plt.subplots()
ax.set_title( "x-y")
ax.set_xlabel( "x")
ax.set_ylabel( "x" )
ax.set_xlim(min(DATA['x'].replace([np.inf, -np.inf], np.nan ).dropna() ) - abs( min(DATA['x'].replace([np.inf, -np.inf], np.nan ).dropna() )/10), max(DATA['x'].replace([np.inf, -np.inf], np.nan).dropna()) + abs(max(DATA['x'].replace([np.inf, -np.inf], np.nan).dropna())/10) )
ax.set_ylim( min(DATA['x'].replace([np.inf, -np.inf], np.nan ).dropna() ) - abs( min(DATA['x'].replace([np.inf, -np.inf], np.nan ).dropna() )/10), max(DATA['x'].replace([np.inf, -np.inf], np.nan).dropna()) + abs(max(DATA['x'].replace([np.inf, -np.inf], np.nan).dropna())/10) )
#- PLOT ------------------
ax.plot( DATA["x"].replace([np.inf, -np.inf], np.nan), DATA["x"].replace([np.inf, -np.inf], np.nan), linewidth = 3.0, alpha =1.0, color = "#005AFF" )
plt.show()
以上是关于python matplotlib数据作图的主要内容,如果未能解决你的问题,请参考以下文章