精华内容
下载资源
问答
  • python图表可视化

    2020-07-13 14:55:25
    https://www.jianshu.com/p/554d64470ec9
    展开全文
  • python制作可视化图表Visualizing data is vital to analyzing data. If you can’t see your data – and see it in multiple ways – you’ll have a hard time analyzing that data.There are quite a few ways ...

    python制作可视化图表

    Visualizing data is vital to analyzing data.  If you can’t see your data – and see it in multiple ways – you’ll have a hard time analyzing that data.  There are quite a few ways to visualize data and, thankfully, with pandas, matplotlib and/or seaborn, you can make some pretty powerful visualizations during analysis.

    可视化数据对于分析数据至关重要。 如果看不到您的数据,并且无法以多种方式查看它,那么您将很难分析这些数据。 有很多方法可以可视化数据,而且值得庆幸的是,使用pandas,matplotlib和/或seaborn,您可以在分析过程中进行一些非常强大的可视化。

    One of the things I like to do when I get a new dataset is try to visualize data points against each other to see if there’s anything that jumps out at me.   To do this, I like to overlay charts against each other to find any patterns in the data / charts. With matplotlib, this is pretty easy to do but working with dual-axis can be a bit confusing at first.

    当我获得一个新的数据集时,我想做的一件事就是尝试使数据点彼此可视化,以查看是否有任何东西跳到我身上。 为此,我希望将图表彼此重叠以在数据/图表中找到任何模式。 使用matplotlib ,这很容易做到,但是一开始使用双轴可能会有些混乱。



    Want  to learn more about data visualization and/or matplotlib? Here are a few books / websites with good info on the topic.

    想更多地了解数据可视化和/或matplotlib? 这是一些有关该主题的好信息的书籍/网站。



    One chart that I like to look at for data that I know has a relationship – like sales revenue and number of widgets sold – is the dual overlay of revenue vs quantity.  An example of one of my go-to approaches for visualizing data is in Figure 1 below.

    我想查看一个我知道有关联关系的数据(例如销售收入和售出的小部件数量)的图表是收入与数量的双重叠加。 下面的图1是我用于可视化数据的一种方法的示例。

    Visualizing data - revenue vs number of items
    Figure 1: Visualizing data — Revenue vs Quantity chart overlay
    图1:可视化数据—收入与数量图表重叠

    In this chart, we have Monthly Sales Revenue (blue line) chart overlay-ed against the Number of Items Sold chart (multi-colored bar chart). This type of chart lets me quickly see if there are any easy patterns in the revenue vs # of items.

    在此图表中,我们将“每月销售收入”(蓝线)图表与“已售物品数量”图表(彩色条形图)重叠。 这种图表使我可以快速查看收入与项目数量之间是否有任何简单的模式。

    I’ve not found a quick/easy way to build the multi-colored bar chart without hacking the data and building each colored section manually…so if you know a better way that what I share below, let me know.

    我没有找到一种快速/简便的方法来构建多色条形图,而又不会破坏数据并手动构建每个有色部分……因此,如果您知道我下面分享的更好的方法,请告诉我。

    一个例子 (An example)

    Here’s my code for building this chart using this data.

    这是我使用此数据构建此图表的代码。

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    %matplotlib inline # needed for jupyter notebooks
    
    plt.rcParams['figure.figsize']=(20,10) # set the figure size
    plt.style.use('fivethirtyeight') # using the fivethirtyeight matplotlib theme
    
    sales = pd.read_csv('examples/sales.csv') # Read the data in
    sales.Date = pd.to_datetime(sales.Date) #set the date column to datetime
    sales.set_index('Date', inplace=True) #set the index to the date column
    
    # now the hack for the multi-colored bar chart: 
    # create fiscal year dataframes covering the timeframes you are looking for. In this case,
    # the fiscal year covered October - September.
    # --------------------------------------------------------------------------------
    # Note: This should be set up as a function, but for this small amount of data,
    # I just manually built each fiscal year. This is not very pythonic and would
    # suck to do if you have many years of data, but it isn't bad for a few years of data. 
    # --------------------------------------------------------------------------------
    
    fy10_all = sales[(sales.index >= '2009-10-01') & (sales.index < '2010-10-01')]
    fy11_all = sales[(sales.index >= '2010-10-01') & (sales.index < '2011-10-01')]
    fy12_all = sales[(sales.index >= '2011-10-01') & (sales.index < '2012-10-01')]
    fy13_all = sales[(sales.index >= '2012-10-01') & (sales.index < '2013-10-01')]
    fy14_all = sales[(sales.index >= '2013-10-01') & (sales.index < '2014-10-01')]
    fy15_all = sales[(sales.index >= '2014-10-01') & (sales.index < '2015-10-01')]
    
    # Let's build our plot
    
    fig, ax1 = plt.subplots()
    ax2 = ax1.twinx()  # set up the 2nd axis
    ax1.plot(sales.Sales_Dollars) #plot the Revenue on axis #1
    
    # the next few lines plot the fiscal year data as bar plots and changes the color for each.
    ax2.bar(fy10_all.index, fy10_all.Quantity,width=20, alpha=0.2, color='orange')
    ax2.bar(fy11_all.index, fy11_all.Quantity,width=20, alpha=0.2, color='gray')
    ax2.bar(fy12_all.index, fy12_all.Quantity,width=20, alpha=0.2, color='orange')
    ax2.bar(fy13_all.index, fy13_all.Quantity,width=20, alpha=0.2, color='gray')
    ax2.bar(fy14_all.index, fy14_all.Quantity,width=20, alpha=0.2, color='orange')
    ax2.bar(fy15_all.index, fy15_all.Quantity,width=20, alpha=0.2, color='gray')
    
    ax2.grid(b=False) # turn off grid #2
    
    ax1.set_title('Monthly Sales Revenue vs Number of Items Sold Per Month')
    ax1.set_ylabel('Monthly Sales Revenue')
    ax2.set_ylabel('Number of Items Sold')
    
    # Set the x-axis labels to be more meaningful than just some random dates.
    labels = ['FY 2010', 'FY 2011','FY 2012', 'FY 2013','FY 2014', 'FY 2015']
    ax1.axes.set_xticklabels(labels)
    

    翻译自: https://www.pybloggers.com/2017/06/visualizing-data-overlaying-charts-in-python/

    python制作可视化图表

    展开全文
  • Python数据图表可视化

    千人学习 2020-06-05 15:29:07
    数据分析是一门重要的技能,职场中掌握了数据分析技术往往能让人另眼相看,而数据可视化是数据分析的结果展示最有效的手段,本视频是Pandas数据分析课程的后续课程,可以掌握各种图表的绘制方法,通过实际案例的讲解...
  • 设置每行的图表数量 size=1.5 ) g.map(plt.plot, " solutions " , " score " , marker = " o " ,color = ' gray ' ,linewidth = 2 ) # 绘制图表矩阵 g.set(xlim = (0,4 ), ylim = (0,10 ), xticks ...

     1.基本设置

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    % matplotlib inline
    
    sns.set_style("ticks")
    sns.set_context("paper")
    # 设置风格、尺度
    
    import warnings
    warnings.filterwarnings('ignore') 
    # 不发出警告
    # 1、基本设置
    # 绘制直方图
    
    tips = sns.load_dataset("tips")
    print(tips.head())
    # 导入数据
    
    g = sns.FacetGrid(tips, col="time", row="smoker")
    # 创建一个绘图表格区域,设置好row、col并分组
    
    g.map(plt.hist, "total_bill",alpha = 0.5,color = 'k',bins = 10)
    # 以total_bill字段数据分别做直方图统计

    # 1、基本设置
    # 绘制直方图
    
    g = sns.FacetGrid(tips, col="day", 
                      size=4,    # 图表大小
                      aspect=.5) # 图表长宽比
    
    g.map(plt.hist, "total_bill", bins=10,
          histtype = 'step',   #'bar', 'barstacked', 'step', 'stepfilled'
          color = 'k')

    # 1、基本设置
    # 绘制散点图
    
    g = sns.FacetGrid(tips, col="time",  row="smoker")
    # 创建一个绘图表格区域,设置好row、col并分组
    
    g.map(plt.scatter, 
          "total_bill", "tip",    # share{x,y} → 设置x、y数据
          edgecolor="w", s = 40, linewidth = 1)   # 设置点大小,描边宽度及颜色
    g.add_legend()
    # 添加图例

    # 1、基本设置
    # 分类
    
    g = sns.FacetGrid(tips, col="time",  hue="smoker")
    # 创建一个绘图表格区域,设置好col并分组,按hue分类
    
    g.map(plt.scatter, 
          "total_bill", "tip",    # share{x,y} → 设置x、y数据
          edgecolor="w", s = 40, linewidth = 1)   # 设置点大小,描边宽度及颜色
    g.add_legend()
    # 添加图例

    2. 图表矩阵

    # 2、图表矩阵
    
    attend = sns.load_dataset("attention")
    print(attend.head())
    # 加载数据
    
    g = sns.FacetGrid(attend, col="subject", col_wrap=5,   # 设置每行的图表数量
                      size=1.5)
    g.map(plt.plot, "solutions", "score", 
          marker="o",color = 'gray',linewidth = 2)
    # 绘制图表矩阵
    
    g.set(xlim = (0,4),
          ylim = (0,10),
          xticks = [0,1,2,3,4],
          yticks = [0,2,4,6,8,10]
          )
    # 设置x,y轴刻度

     

    转载于:https://www.cnblogs.com/shengyang17/p/9721654.html

    展开全文
  • 这些图表列表允许开发者使用 Python 的 Matplotlib 和 seaborn 库选择要显示的可视化对象。写在前面这些图表根据可视化目标的7个不同情景进行分组。例如,如果要想象两个变量之间的关系,请查看"关联&qu...

    如何攻破可视化图表?附完整 Python 源代码

    翻译 | Lemon

    责编 | 郭    芮

    本文总结了 Matplotlib 以及 Seaborn 用的最多的50个图形。这些图表列表允许开发者使用 Python 的 Matplotlib 和 seaborn 库选择要显示的可视化对象。

    写在前面

    这些图表根据可视化目标的7个不同情景进行分组。例如,如果要想象两个变量之间的关系,请查看"关联"部分下的图表。或者,如果想要显示值如何随时间变化,请查看"变化"部分,依此类推。

    有效图表的重要特征:

    在不歪曲事实的情况下传达正确和必要的信息。

    设计简单,不必太费力就能理解它。

    从审美角度支持信息而不是掩盖信息。

    信息没有超负荷。

    准备工作

    在代码运行前先引入下面的设置内容。当然,单独的图表可以重新设置显示要素。

    # !pip install brewer2mpl

    import numpy as np

    import pandas as pd

    import matplotlib as mpl

    import matplotlib.pyplot as plt

    import seaborn as sns

    import warnings; warnings.filterwarnings(action="once")

    large = 22; med = 16; small = 12

    params = {"axes.titlesize": large,

    "legend.fontsize": med,

    "figure.figsize": (16, 10),

    "axes.labelsize": med,

    "axes.titlesize": med,

    "xtick.labelsize": med,

    "ytick.labelsize": med,

    "figure.titlesize": large}

    plt.rcParams.update(params)

    plt.style.use("seaborn-whitegrid")

    sns.set_style("white")

    %matplotlib inline

    # Version

    print(mpl.__version__)  #> 3.0.0

    print(sns.__version__)  #> 0.9.0

    3.0.2

    0.9.0

    关联 (Correlation)

    关联图表用于可视化2个或更多变量之间的关系。也就是说,一个变量如何相对于另一个变化。

    1、散点图(Scatter plot)

    散点图是用于研究两个变量之间关系的经典的和基本的图表。如果数据中有多个组,则可能需要以不同颜色可视化每个组。在 matplotlib 中,可以使用 plt.scatterplot() 方便地执行此操作。

    # Import dataset

    midwest = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/midwest_filter.csv")

    # Prepare Data

    # Create as many colors as there are unique midwest["category"]

    categories = np.unique(midwest["category"])

    colors = [plt.cm.tab10(i/float(len(categories)-1)) for i in range(len(categories))]

    # Draw Plot for Each Category

    plt.figure(figsize=(16, 10), dpi= 80, facecolor="w", edgecolor="k")

    for i, category in enumerate(categories):

    plt.scatter("area", "poptotal",

    data=midwest.loc[midwest.category==category, :],

    s=20, cmap=colors[i], label=str(category))

    # "c=" 修改为 "cmap=",Python数据之道 备注

    # Decorations

    plt.gca().set(xlim=(0.0, 0.1), ylim=(0, 90000),

    xlabel="Area", ylabel="Population")

    plt.xticks(fontsize=12); plt.yticks(fontsize=12)

    plt.title("Scatterplot of Midwest Area vs Population", fontsize=22)

    plt.legend(fontsize=12)

    plt.show()

    图1

    2、带边界的气泡图(Bubble plot with Encircling)

    有时,开发者希望在边界内显示一组点以强调其重要性。在这个例子中,你从数据框中获取记录,并用下面代码中描述的 encircle() 来使边界显示出来。

    from matplotlib import patches

    from scipy.spatial import ConvexHull

    import warnings; warnings.simplefilter("ignore")

    # Step 1: Prepare Data

    # As many colors as there are unique midwest["category"]

    # Step 2: Draw Scatterplot with unique color for each category

    fig = plt.figure(figsize=(16, 10), dpi= 80, facecolor="w", edgecolor="k")

    plt.scatter("area", "poptotal", data=midwest.loc[midwest.category==category, :],

    s="dot_size", cmap=colors[i], label=str(category), edgecolors="black", linewidths=.5)

    # Step 3: Encircling

    # https://stackoverflow.com/questions/44575681/how-do-i-encircle-different-data-sets-in-scatter-plot

    def encircle(x,y, ax=None, **kw):

    if not ax: ax=plt.gca()

    p = np.c_[x,y]

    hull = ConvexHull(p)

    poly = plt.Polygon(p[hull.vertices,:], **kw)

    ax.add_patch(poly)

    # Select data to be encircled

    midwest_encircle_data = midwest.loc[midwest.state=="IN", :]

    # Draw polygon surrounding vertices

    encircle(midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="k", fc="gold", alpha=0.1)

    encircle(midwest_encircle_data.area, midwest_encircle_data.poptotal, ec="firebrick", fc="none", linewidth=1.5)

    # Step 4: Decorations

    plt.title("Bubble Plot with Encircling", fontsize=22)

    图2

    3、带线性回归最佳拟合线的散点图 (Scatter plot with linear regression line of best fit)

    如果想了解两个变量如何相互改变,那么最佳拟合线就是常用的方法。下图显示了数据中各组之间最佳拟合线的差异。要禁用分组并仅为整个数据集绘制一条最佳拟合线,请从下面的 sns.lmplot()调用中删除 hue ="cyl"参数。

    # Import Data

    df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/mpg_ggplot2.csv")

    df_select = df.loc[df.cyl.isin([4,8]), :]

    # Plot

    gridobj = sns.lmplot(x="displ", y="hwy", hue="cyl", data=df_select,

    height=7, aspect=1.6, robust=True, palette="tab10",

    scatter_kws=dict(s=60, linewidths=.7, edgecolors="black"))

    gridobj.set(xlim=(0.5, 7.5), ylim=(0, 50))

    plt.title("Scatterplot with line of best fit grouped by number of cylinders", fontsize=20)

    plt.show()

    图3

    针对每列绘制线性回归线

    或者,可以在其每列中显示每个组的最佳拟合线。可以通过在 sns.lmplot() 中设置 col=groupingcolumn 参数来实现,如下:

    # Each line in its own column

    gridobj = sns.lmplot(x="displ", y="hwy",

    data=df_select,

    height=7,

    robust=True,

    palette="Set1",

    col="cyl",

    图3-2

    4、抖动图 (Jittering with stripplot)

    通常,多个数据点具有完全相同的 X 和 Y 值。结果,多个点绘制会重叠并隐藏。为避免这种情况,请将数据点稍微抖动,以便可以直观地看到它们。使用 seaborn 的 stripplot() 很方便实现这个功能。

    # Draw Stripplot

    fig, ax = plt.subplots(figsize=(16,10), dpi= 80)

    sns.stripplot(df.cty, df.hwy, jitter=0.25, size=8, ax=ax, linewidth=.5)

    plt.title("Use jittered plots to avoid overlapping of points", fontsize=22)

    图4

    5、计数图 (Counts Plot)

    避免点重叠问题的另一个选择是增加点的大小,这取决于该点中有多少点。 因此,点的大小越大,其周围的点的集中度越高。

    df_counts = df.groupby(["hwy", "cty"]).size().reset_index(name="counts")

    sns.stripplot(df_counts.cty, df_counts.hwy, size=df_counts.counts*2, ax=ax)

    plt.title("Counts Plot - Size of circle is bigger as more points overlap", fontsize=22)

    图5

    6、边缘直方图 (Marginal Histogram)

    边缘直方图具有沿 X 和 Y 轴变量的直方图,这用于可视化 X 和 Y 之间的关系以及单独的 X 和 Y 的单变量分布。这种图经常用于探索性数据分析(EDA)。

    图6

    7、边缘箱形图 (Marginal Boxplot)

    边缘箱图与边缘直方图具有相似的用途。然而,箱线图有助于精确定位 X 和 Y 的中位数、第25和第75百分位数。

    图7

    8、相关图 (Correllogram)

    相关图用于直观地查看给定数据框(或二维数组)中所有可能的数值变量对之间的相关度量。

    # Import Dataset

    df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv")

    plt.figure(figsize=(12,10), dpi= 80)

    sns.heatmap(df.corr(), xticklabels=df.corr().columns, yticklabels=df.corr().columns, cmap="RdYlGn", center=0, annot=True)

    plt.title("Correlogram of mtcars", fontsize=22)

    plt.xticks(fontsize=12)

    plt.yticks(fontsize=12)

    图8

    9、矩阵图 (Pairwise Plot)

    矩阵图是探索性分析中的最爱,用于理解所有可能的数值变量对之间的关系。它是双变量分析的必备工具。

    # Load Dataset

    df = sns.load_dataset("iris")

    plt.figure(figsize=(10,8), dpi= 80)

    sns.pairplot(df, kind="scatter", hue="species", plot_kws=dict(s=80, edgecolor="white", linewidth=2.5))

    图9

    sns.pairplot(df, kind="reg", hue="species")

    图9-2

    偏差 (Deviation)

    10、发散型条形图 (Diverging Bars)

    如果想根据单个指标查看项目的变化情况,并可视化此差异的顺序和数量,那么散型条形图 (Diverging Bars)是一个很好的工具。它有助于快速区分数据中组的性能,并且非常直观,并且可以立即传达这一点。

    # Prepare Data

    x = df.loc[:, ["mpg"]]

    df["mpg_z"] = (x - x.mean())/x.std()

    df["colors"] = ["red" if x < 0 else "green" for x in df["mpg_z"]]

    df.sort_values("mpg_z", inplace=True)

    df.reset_index(inplace=True)

    # Draw plot

    plt.figure(figsize=(14,10), dpi= 80)

    plt.hlines(y=df.index, xmin=0, xmax=df.mpg_z, color=df.colors, alpha=0.4, linewidth=5)

    plt.gca().set(ylabel="$Model$", xlabel="$Mileage$")

    plt.yticks(df.index, df.cars, fontsize=12)

    plt.title("Diverging Bars of Car Mileage", fontdict={"size":20})

    plt.grid(linestyle="--", alpha=0.5)

    图10

    11、发散型文本 (Diverging Texts)

    发散型文本 (Diverging Texts)与发散型条形图 (Diverging Bars)相似,如果你想以一种漂亮和可呈现的方式显示图表中每个项目的价值,就可以使用这种方法。

    plt.figure(figsize=(14,14), dpi= 80)

    plt.hlines(y=df.index, xmin=0, xmax=df.mpg_z)

    for x, y, tex in zip(df.mpg_z, df.index, df.mpg_z):

    t = plt.text(x, y, round(tex, 2), horizontalalignment="right" if x < 0 else "left",

    verticalalignment="center", fontdict={"color":"red" if x < 0 else "green", "size":14})

    # Decorations

    plt.title("Diverging Text Bars of Car Mileage", fontdict={"size":20})

    plt.xlim(-2.5, 2.5)

    图11

    12、发散型包点图 (Diverging Dot Plot)

    发散型包点图 (Diverging Dot Plot)也类似于发散型条形图 (Diverging Bars)。 然而,与发散型条形图 (Diverging Bars)相比,条的缺失减少了组之间的对比度和差异。

    df["colors"] = ["red" if x < 0 else "darkgreen" for x in df["mpg_z"]]

    plt.figure(figsize=(14,16), dpi= 80)

    plt.scatter(df.mpg_z, df.index, s=450, alpha=.6, color=df.colors)

    t = plt.text(x, y, round(tex, 1), horizontalalignment="center",

    verticalalignment="center", fontdict={"color":"white"})

    # Lighten borders

    plt.gca().spines["top"].set_alpha(.3)

    plt.gca().spines["bottom"].set_alpha(.3)

    plt.gca().spines["right"].set_alpha(.3)

    plt.gca().spines["left"].set_alpha(.3)

    plt.yticks(df.index, df.cars)

    plt.title("Diverging Dotplot of Car Mileage", fontdict={"size":20})

    plt.xlabel("$Mileage$")

    图12

    13、带标记的发散型棒棒糖图 (Diverging Lollipop Chart with Markers)

    带标记的棒棒糖图通过强调想要引起注意的任何重要数据点并在图表中适当地给出推理,提供了一种对差异进行可视化的灵活方式。

    图13

    14、面积图 (Area Chart)

    通过对轴和线之间的区域进行着色,面积图不仅强调峰和谷,而且还强调高点和低点的持续时间。高点持续时间越长,线下面积越大。

    import numpy as np

    df = pd.read_csv("https://github.com/selva86/datasets/raw/master/economics.csv", parse_dates=["date"]).head(100)

    x = np.arange(df.shape[0])

    y_returns = (df.psavert.diff().fillna(0)/df.psavert.shift(1)).fillna(0) * 100

    plt.figure(figsize=(16,10), dpi= 80)

    plt.fill_between(x[1:], y_returns[1:], 0, where=y_returns[1:] >= 0, facecolor="green", interpolate=True, alpha=0.7)

    plt.fill_between(x[1:], y_returns[1:], 0, where=y_returns[1:] <= 0, facecolor="red", interpolate=True, alpha=0.7)

    # Annotate

    plt.annotate("Peak n1975", xy=(94.0, 21.0), xytext=(88.0, 28),

    bbox=dict(boxstyle="square", fc="firebrick"),

    arrowprops=dict(facecolor="steelblue", shrink=0.05), fontsize=15, color="white")

    xtickvals = [str(m)[:3].upper()+"-"+str(y) for y,m in zip(df.date.dt.year, df.date.dt.month_name())]

    plt.gca().set_xticks(x[::6])

    plt.gca().set_xticklabels(xtickvals[::6], rotation=90, fontdict={"horizontalalignment": "center", "verticalalignment": "center_baseline"})

    plt.ylim(-35,35)

    plt.xlim(1,100)

    plt.title("Month Economics Return %", fontsize=22)

    plt.ylabel("Monthly returns %")

    plt.grid(alpha=0.5)

    图14

    排序 (Ranking)

    15、有序条形图 (Ordered Bar Chart)

    有序条形图有效地传达了项目的排名顺序。但是,在图表上方添加度量标准的值,用户可以从图表本身获取精确信息。

    图15

    16、棒棒糖图 (Lollipop Chart)

    棒棒糖图表以一种视觉上令人愉悦的方式提供与有序条形图类似的目的。

    df_raw = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")

    df = df_raw[["cty", "manufacturer"]].groupby("manufacturer").apply(lambda x: x.mean())

    df.sort_values("cty", inplace=True)

    fig, ax = plt.subplots(figsize=(16,10), dpi= 80)

    ax.vlines(x=df.index, ymin=0, ymax=df.cty, color="firebrick", alpha=0.7, linewidth=2)

    ax.scatter(x=df.index, y=df.cty, s=75, color="firebrick", alpha=0.7)

    # Title, Label, Ticks and Ylim

    ax.set_title("Lollipop Chart for Highway Mileage", fontdict={"size":22})

    ax.set_ylabel("Miles Per Gallon")

    ax.set_xticks(df.index)

    ax.set_xticklabels(df.manufacturer.str.upper(), rotation=60, fontdict={"horizontalalignment": "right", "size":12})

    ax.set_ylim(0, 30)

    for row in df.itertuples():

    ax.text(row.Index, row.cty+.5, s=round(row.cty, 2), horizontalalignment= "center", verticalalignment="bottom", fontsize=14)

    图16

    17、包点图 (Dot Plot)

    包点图表传达了项目的排名顺序,并且由于它沿水平轴对齐,因此可以更容易地看到点彼此之间的距离。

    ax.hlines(y=df.index, xmin=11, xmax=26, color="gray", alpha=0.7, linewidth=1, linestyles="dashdot")

    ax.scatter(y=df.index, x=df.cty, s=75, color="firebrick", alpha=0.7)

    ax.set_title("Dot Plot for Highway Mileage", fontdict={"size":22})

    ax.set_xlabel("Miles Per Gallon")

    ax.set_yticks(df.index)

    ax.set_yticklabels(df.manufacturer.str.title(), fontdict={"horizontalalignment": "right"})

    ax.set_xlim(10, 27)

    图17

    18、坡度图 (Slope Chart)

    坡度图最适合比较给定人/项目的"前"和"后"位置。

    图18

    19、哑铃图 (Dumbbell Plot)

    哑铃图表传达了各种项目的"前"和"后"位置以及项目的等级排序。如果想要将特定项目/计划对不同对象的影响可视化,那么它非常有用。

    图19

    分布 (Distribution)

    20、连续变量的直方图 (Histogram for Continuous Variable)

    直方图显示给定变量的频率分布。下面的图表示基于类型变量对频率条进行分组,从而更好地了解连续变量和类型变量。

    df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")

    # Prepare data

    x_var = "displ"

    groupby_var = "class"

    df_agg = df.loc[:, [x_var, groupby_var]].groupby(groupby_var)

    vals = [df[x_var].values.tolist() for i, df in df_agg]

    # Draw

    plt.figure(figsize=(16,9), dpi= 80)

    colors = [plt.cm.Spectral(i/float(len(vals)-1)) for i in range(len(vals))]

    n, bins, patches = plt.hist(vals, 30, stacked=True, density=False, color=colors[:len(vals)])

    # Decoration

    plt.legend({group:col for group, col in zip(np.unique(df[groupby_var]).tolist(), colors[:len(vals)])})

    plt.title(f"Stacked Histogram of ${x_var}$ colored by ${groupby_var}$", fontsize=22)

    plt.xlabel(x_var)

    plt.ylabel("Frequency")

    plt.ylim(0, 25)

    plt.xticks(ticks=bins[::3], labels=[round(b,1) for b in bins[::3]])

    图20

    21、类型变量的直方图 (Histogram for Categorical Variable)

    类型变量的直方图显示该变量的频率分布。通过对条形图进行着色,可以将分布与表示颜色的另一个类型变量相关联。

    x_var = "manufacturer"

    n, bins, patches = plt.hist(vals, df[x_var].unique().__len__(), stacked=True, density=False, color=colors[:len(vals)])

    plt.ylim(0, 40)

    plt.xticks(ticks=bins, labels=np.unique(df[x_var]).tolist(), rotation=90, horizontalalignment="left")

    图21

    22、密度图 (Density Plot)

    密度图是一种常用工具,用于可视化连续变量的分布。通过"响应"变量对它们进行分组,可以检查 X 和 Y 之间的关系。以下情况用于表示目的,以描述城市里程的分布如何随着汽缸数的变化而变化。

    # Draw Plot

    sns.kdeplot(df.loc[df["cyl"] == 4, "cty"], shade=True, color="g", label="Cyl=4", alpha=.7)

    sns.kdeplot(df.loc[df["cyl"] == 5, "cty"], shade=True, color="deeppink", label="Cyl=5", alpha=.7)

    sns.kdeplot(df.loc[df["cyl"] == 6, "cty"], shade=True, color="dodgerblue", label="Cyl=6", alpha=.7)

    sns.kdeplot(df.loc[df["cyl"] == 8, "cty"], shade=True, color="orange", label="Cyl=8", alpha=.7)

    plt.title("Density Plot of City Mileage by n_Cylinders", fontsize=22)

    plt.legend()

    图22

    23、直方密度线图 (Density Curves with Histogram)

    带有直方图的密度曲线汇集了两个图所传达的集体信息,因此可以将它们放在一个图中而不是两个图中。

    plt.figure(figsize=(13,10), dpi= 80)

    sns.distplot(df.loc[df["class"] == "compact", "cty"], color="dodgerblue", label="Compact", hist_kws={"alpha":.7}, kde_kws={"linewidth":3})

    sns.distplot(df.loc[df["class"] == "suv", "cty"], color="orange", label="SUV", hist_kws={"alpha":.7}, kde_kws={"linewidth":3})

    sns.distplot(df.loc[df["class"] == "minivan", "cty"], color="g", label="minivan", hist_kws={"alpha":.7}, kde_kws={"linewidth":3})

    plt.ylim(0, 0.35)

    plt.title("Density Plot of City Mileage by Vehicle Type", fontsize=22)

    图23

    24、Joy Plot

    Joy Plot允许不同组的密度曲线重叠,这是一种可视化大量分组数据的彼此关系分布的好方法。它看起来很悦目,并清楚地传达了正确的信息。它可以使用基于 matplotlib 的 joypy 包轻松构建 (注:需要安装 joypy 库)。

    # !pip install joypy

    # Python数据之道 备注

    import joypy

    # Import Data

    mpg = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv")

    fig, axes = joypy.joyplot(mpg, column=["hwy", "cty"], by="class", ylim="own", figsize=(14,10))

    plt.title("Joy Plot of City and Highway Mileage by Class", fontsize=22)

    图24

    25、分布式包点图 (Distributed Dot Plot)

    分布式包点图显示按组分割的点的单变量分布。点数越暗,该区域的数据点集中度越高。通过对中位数进行不同着色,组的真实定位立即变得明显。

    图25

    26、箱形图 (Box Plot)

    箱形图是一种可视化分布的好方法,记住中位数、第25个第45个四分位数和异常值。但是,需要注意解释可能会扭曲该组中包含的点数的框的大小。因此,手动提供每个框中的观察数量可以帮助克服这个缺点。

    例如,左边的前两个框具有相同大小的框,即使它们的值分别是5和47。因此,写入该组中的观察数量是必要的。

    sns.boxplot(x="class", y="hwy", data=df, notch=False)

    # Add N Obs inside boxplot (optional)

    def add_n_obs(df,group_col,y):

    medians_dict = {grp[0]:grp[1][y].median() for grp in df.groupby(group_col)}

    xticklabels = [x.get_text() for x in plt.gca().get_xticklabels()]

    n_obs = df.groupby(group_col)[y].size().values

    for (x, xticklabel), n_ob in zip(enumerate(xticklabels), n_obs):

    plt.text(x, medians_dict[xticklabel]*1.01, "#obs : "+str(n_ob), horizontalalignment="center", fontdict={"size":14}, color="white")

    add_n_obs(df,group_col="class",y="hwy")

    plt.title("Box Plot of Highway Mileage by Vehicle Class", fontsize=22)

    plt.ylim(10, 40)

    图26

    27、包点+箱形图 (Dot + Box Plot)

    包点+箱形图 (Dot + Box Plot)传达类似于分组的箱形图信息。此外,这些点可以了解每组中有多少数据点。

    sns.boxplot(x="class", y="hwy", data=df, hue="cyl")

    sns.stripplot(x="class", y="hwy", data=df, color="black", size=3, jitter=1)

    for i in range(len(df["class"].unique())-1):

    plt.vlines(i+.5, 10, 45, linestyles="solid", colors="gray", alpha=0.2)

    plt.legend(title="Cylinders")

    图27

    28、小提琴图 (Violin Plot)

    小提琴图是箱形图在视觉上令人愉悦的替代品。小提琴的形状或面积取决于它所持有的观察次数。但是,小提琴图可能更难以阅读,并且在专业设置中不常用。

    sns.violinplot(x="class", y="hwy", data=df, scale="width", inner="quartile")

    plt.title("Violin Plot of Highway Mileage by Vehicle Class", fontsize=22)

    图28

    29、人口金字塔 (Population Pyramid)

    人口金字塔可用于显示由数量排序的组的分布,或者它也可以用于显示人口的逐级过滤,因为它在下面用于显示有多少人通过营销渠道的每个阶段。

    # Read data

    df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/email_campaign_funnel.csv")

    group_col = "Gender"

    order_of_bars = df.Stage.unique()[::-1]

    colors = [plt.cm.Spectral(i/float(len(df[group_col].unique())-1)) for i in range(len(df[group_col].unique()))]

    for c, group in zip(colors, df[group_col].unique()):

    sns.barplot(x="Users", y="Stage", data=df.loc[df[group_col]==group, :], order=order_of_bars, color=c, label=group)

    plt.xlabel("$Users$")

    plt.ylabel("Stage of Purchase")

    plt.title("Population Pyramid of the Marketing Funnel", fontsize=22)

    图29

    30、分类图 (Categorical Plots)

    由 seaborn库 提供的分类图可用于可视化彼此相关的2个或更多分类变量的计数分布。

    titanic = sns.load_dataset("titanic")

    g = sns.catplot("alive", col="deck", col_wrap=4,

    data=titanic[titanic.deck.notnull()],

    kind="count", height=3.5, aspect=.8,

    palette="tab20")

    fig.suptitle("sf")

    图30

    sns.catplot(x="age", y="embark_town",

    hue="sex", col="class",

    data=titanic[titanic.embark_town.notnull()],

    orient="h", height=5, aspect=1, palette="tab10",

    kind="violin", dodge=True, cut=0, bw=.2)

    图30-2

    组成 (Composition)

    31、华夫饼图 (Waffle Chart)

    可以使用 pywaffle包创建华夫饼图,并用于显示更大群体中的组的组成(注:需要安装 pywaffle 库)。

    #! pip install pywaffle

    # Reference: https://stackoverflow.com/questions/41400136/how-to-do-waffle-charts-in-python-square-piechart

    from pywaffle import Waffle

    # Import

    df = df_raw.groupby("class").size().reset_index(name="counts")

    n_categories = df.shape[0]

    colors = [plt.cm.inferno_r(i/float(n_categories)) for i in range(n_categories)]

    # Draw Plot and Decorate

    fig = plt.figure(

    FigureClass=Waffle,

    plots={

    "111": {

    "values": df["counts"],

    "labels": ["{0} ({1})".format(n[0], n[1]) for n in df[["class", "counts"]].itertuples()],

    "legend": {"loc": "upper left", "bbox_to_anchor": (1.05, 1), "fontsize": 12},

    "title": {"label": "# Vehicles by Class", "loc": "center", "fontsize":18}

    },

    },

    rows=7,

    colors=colors,

    figsize=(16, 9)

    )

    图31

    图31-2

    32、饼图 (Pie Chart)

    饼图是显示组成的经典方式。然而,现在通常不建议使用它,因为馅饼部分的面积有时会变得误导。因此,如果要使用饼图,强烈建议明确记下饼图每个部分的百分比或数字。

    # Import

    df = df_raw.groupby("class").size()

    # Make the plot with pandas

    df.plot(kind="pie", subplots=True, figsize=(8, 8))

    plt.title("Pie Chart of Vehicle Class - Bad")

    plt.ylabel("")

    图32

    图32-2

    33、树形图 (Treemap)

    树形图类似于饼图,它可以更好地完成工作而不会误导每个组的贡献(注:需要安装 squarify 库)。

    # pip install squarify

    import squarify

    labels = df.apply(lambda x: str(x[0]) + "n (" + str(x[1]) + ")", axis=1)

    sizes = df["counts"].values.tolist()

    colors = [plt.cm.Spectral(i/float(len(labels))) for i in range(len(labels))]

    plt.figure(figsize=(12,8), dpi= 80)

    squarify.plot(sizes=sizes, label=labels, color=colors, alpha=.8)

    # Decorate

    plt.title("Treemap of Vechile Class")

    plt.axis("off")

    图33

    34、条形图 (Bar Chart)

    条形图是基于计数或任何给定指标可视化项目的经典方式。在下面的图表中,我为每个项目使用了不同的颜色,但开发者通常可能希望为所有项目选择一种颜色,除非按组对其进行着色。颜色名称存储在下面代码中的all_colors中,可以通过在 plt.plot()中设置颜色参数来更改条的颜色。

    import random

    df = df_raw.groupby("manufacturer").size().reset_index(name="counts")

    n = df["manufacturer"].unique().__len__()+1

    all_colors = list(plt.cm.colors.cnames.keys())

    random.seed(100)

    c = random.choices(all_colors, k=n)

    # Plot Bars

    plt.bar(df["manufacturer"], df["counts"], color=c, width=.5)

    for i, val in enumerate(df["counts"].values):

    plt.text(i, val, float(val), horizontalalignment="center", verticalalignment="bottom", fontdict={"fontweight":500, "size":12})

    plt.gca().set_xticklabels(df["manufacturer"], rotation=60, horizontalalignment= "right")

    plt.title("Number of Vehicles by Manaufacturers", fontsize=22)

    plt.ylabel("# Vehicles")

    plt.ylim(0, 45)

    图34

    变化 (Change)

    35、时间序列图 (Time Series Plot)

    时间序列图用于显示给定度量随时间变化的方式。在这里,可以看到 1949 年至 1969 年间航空客运量的变化情况。

    df = pd.read_csv("https://github.com/selva86/datasets/raw/master/AirPassengers.csv")

    plt.plot("date", "traffic", data=df, color="tab:red")

    plt.ylim(50, 750)

    xtick_location = df.index.tolist()[::12]

    xtick_labels = [x[-4:] for x in df.date.tolist()[::12]]

    plt.xticks(ticks=xtick_location, labels=xtick_labels, rotation=0, fontsize=12, horizontalalignment="center", alpha=.7)

    plt.yticks(fontsize=12, alpha=.7)

    plt.title("Air Passengers Traffic (1949 - 1969)", fontsize=22)

    plt.grid(axis="both", alpha=.3)

    # Remove borders

    plt.gca().spines["top"].set_alpha(0.0)

    plt.gca().spines["bottom"].set_alpha(0.3)

    plt.gca().spines["right"].set_alpha(0.0)

    plt.gca().spines["left"].set_alpha(0.3)

    图35

    36、带波峰波谷标记的时序图 (Time Series with Peaks and Troughs Annotated)

    下面的时间序列绘制了所有峰值和低谷,并注释了所选特殊事件的发生。

    图36

    37、自相关和部分自相关图 (Autocorrelation (ACF) and Partial Autocorrelation (PACF) Plot)

    自相关图(ACF图)显示时间序列与其自身滞后的相关性,每条垂直线(在自相关图上)表示系列与滞后0之间的滞后之间的相关性。图中的蓝色阴影区域是显着性水平,那些位于蓝线之上的滞后是显着的滞后。

    那么如何解读呢?

    对于空乘旅客,我们看到多达14个滞后跨越蓝线,因此非常重要。这意味着,14年前的航空旅客交通量对今天的交通状况有影响。

    PACF在另一方面显示了任何给定滞后(时间序列)与当前序列的自相关,但是删除了滞后的贡献。

    from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

    fig, (ax1, ax2) = plt.subplots(1, 2,figsize=(16,6), dpi= 80)

    plot_acf(df.traffic.tolist(), ax=ax1, lags=50)

    plot_pacf(df.traffic.tolist(), ax=ax2, lags=20)

    # lighten the borders

    ax1.spines["top"].set_alpha(.3); ax2.spines["top"].set_alpha(.3)

    ax1.spines["bottom"].set_alpha(.3); ax2.spines["bottom"].set_alpha(.3)

    ax1.spines["right"].set_alpha(.3); ax2.spines["right"].set_alpha(.3)

    ax1.spines["left"].set_alpha(.3); ax2.spines["left"].set_alpha(.3)

    # font size of tick labels

    ax1.tick_params(axis="both", labelsize=12)

    ax2.tick_params(axis="both", labelsize=12)

    图37

    38、交叉相关图 (Cross Correlation plot)

    交叉相关图显示了两个时间序列相互之间的滞后。

    图38

    39、时间序列分解图 (Time Series Decomposition Plot)

    时间序列分解图显示时间序列分解为趋势、季节和残差分量。

    from statsmodels.tsa.seasonal import seasonal_decompose

    from dateutil.parser import parse

    dates = pd.DatetimeIndex([parse(d).strftime("%Y-%m-01") for d in df["date"]])

    df.set_index(dates, inplace=True)

    # Decompose

    result = seasonal_decompose(df["traffic"], model="multiplicative")

    plt.rcParams.update({"figure.figsize": (10,10)})

    result.plot().suptitle("Time Series Decomposition of Air Passengers")

    图39

    40、多个时间序列 (Multiple Time Series)

    可以绘制多个时间序列,在同一图表上测量相同的值,如下所示。

    图40

    41、使用辅助 Y 轴来绘制不同范围的图形 (Plotting with different scales using secondary Y axis)

    如果要显示在同一时间点测量两个不同数量的两个时间序列,则可以在右侧的辅助Y轴上再绘制第二个系列。

    图41

    42、带有误差带的时间序列 (Time Series with Error Bands)

    如果有一个时间序列数据集,每个时间点(日期/时间戳)有多个观测值,则可以构建带有误差带的时间序列。可以在下面看到一些基于每天不同时间订单的示例,另一个关于45天持续到达的订单数量的例子。

    在该方法中,订单数量的平均值由白线表示,并且计算95%置信区间并围绕均值绘制。

    图42

    图42-2

    43、堆积面积图 (Stacked Area Chart)

    堆积面积图可以直观地显示多个时间序列的贡献程度,因此很容易相互比较。

    图43

    44、未堆积的面积图 (Area Chart UnStacked)

    未堆积面积图用于可视化两个或更多个系列相对于彼此的进度(起伏)。在下面的图表中,可以清楚地看到随着失业中位数持续时间的增加,个人储蓄率会下降。未堆积面积图表很好地展示了这种现象。

    df = pd.read_csv("https://github.com/selva86/datasets/raw/master/economics.csv")

    x = df["date"].values.tolist()

    y1 = df["psavert"].values.tolist()

    y2 = df["uempmed"].values.tolist()

    mycolors = ["tab:red", "tab:blue", "tab:green", "tab:orange", "tab:brown", "tab:grey", "tab:pink", "tab:olive"]

    columns = ["psavert", "uempmed"]

    fig, ax = plt.subplots(1, 1, figsize=(16,9), dpi= 80)

    ax.fill_between(x, y1=y1, y2=0, label=columns[1], alpha=0.5, color=mycolors[1], linewidth=2)

    ax.fill_between(x, y1=y2, y2=0, label=columns[0], alpha=0.5, color=mycolors[0], linewidth=2)

    ax.set_title("Personal Savings Rate vs Median Duration of Unemployment", fontsize=18)

    ax.set(ylim=[0, 30])

    ax.legend(loc="best", fontsize=12)

    plt.xticks(x[::50], fontsize=10, horizontalalignment="center")

    plt.yticks(np.arange(2.5, 30.0, 2.5), fontsize=10)

    plt.xlim(-10, x[-1])

    # Draw Tick lines

    for y in np.arange(2.5, 30.0, 2.5):

    plt.hlines(y, xmin=0, xmax=len(x), colors="black", alpha=0.3, linestyles="--", lw=0.5)

    plt.gca().spines["top"].set_alpha(0)

    plt.gca().spines["right"].set_alpha(0)

    图44

    45、日历热力图 (Calendar Heat Map)

    与时间序列相比,日历地图是可视化基于时间的数据的备选和不太优选的选项。虽然可以在视觉上吸引人,但数值并不十分明显。然而,它可以很好地描绘极端值和假日效果(注:需要安装 calmap 库)。

    import matplotlib as mpl

    # pip install calmap

    import calmap

    df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/yahoo.csv", parse_dates=["date"])

    df.set_index("date", inplace=True)

    calmap.calendarplot(df["2014"]["VIX.Close"], fig_kws={"figsize": (16,10)}, yearlabel_kws={"color":"black", "fontsize":14}, subplot_kws={"title":"Yahoo Stock Prices"})

    图45

    46、季节图 (Seasonal Plot)

    季节图可用于比较上一季中同一天(年/月/周等)的时间序列。

    图46

    分组 (Groups)

    47、树状图 (Dendrogram)

    树形图基于给定的距离度量将相似的点组合在一起,并基于点的相似性将它们组织在树状链接中。

    import scipy.cluster.hierarchy as shc

    df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/USArrests.csv")

    plt.figure(figsize=(16, 10), dpi= 80)

    plt.title("USArrests Dendograms", fontsize=22)

    dend = shc.dendrogram(shc.linkage(df[["Murder", "Assault", "UrbanPop", "Rape"]], method="ward"), labels=df.State.values, color_threshold=100)

    图47

    48、簇状图 (Cluster Plot)

    簇状图 (Cluster Plot)可用于划分属于同一群集的点。下面是根据USArrests数据集将美国各州分为5组的代表性示例,此图使用"谋杀"和"攻击"列作为X和Y轴。或者,可以将第一个到主要组件用作X轴和Y轴。

    from sklearn.cluster import AgglomerativeClustering

    # Agglomerative Clustering

    cluster = AgglomerativeClustering(n_clusters=5, affinity="euclidean", linkage="ward")

    cluster.fit_predict(df[["Murder", "Assault", "UrbanPop", "Rape"]])

    plt.figure(figsize=(14, 10), dpi= 80)

    plt.scatter(df.iloc[:,0], df.iloc[:,1], c=cluster.labels_, cmap="tab10")

    # Encircle

    encircle(df.loc[cluster.labels_ == 0, "Murder"], df.loc[cluster.labels_ == 0, "Assault"], ec="k", fc="gold", alpha=0.2, linewidth=0)

    encircle(df.loc[cluster.labels_ == 1, "Murder"], df.loc[cluster.labels_ == 1, "Assault"], ec="k", fc="tab:blue", alpha=0.2, linewidth=0)

    encircle(df.loc[cluster.labels_ == 2, "Murder"], df.loc[cluster.labels_ == 2, "Assault"], ec="k", fc="tab:red", alpha=0.2, linewidth=0)

    encircle(df.loc[cluster.labels_ == 3, "Murder"], df.loc[cluster.labels_ == 3, "Assault"], ec="k", fc="tab:green", alpha=0.2, linewidth=0)

    encircle(df.loc[cluster.labels_ == 4, "Murder"], df.loc[cluster.labels_ == 4, "Assault"], ec="k", fc="tab:orange", alpha=0.2, linewidth=0)

    plt.xlabel("Murder"); plt.xticks(fontsize=12)

    plt.ylabel("Assault"); plt.yticks(fontsize=12)

    plt.title("Agglomerative Clustering of USArrests (5 Groups)", fontsize=22)

    图48

    49、安德鲁斯曲线 (Andrews Curve)

    安德鲁斯曲线有助于可视化是否存在基于给定分组的数字特征的固有分组。如果要素(数据集中的列)无法区分组(cyl),那么这些线将不会很好地隔离,如下所示。

    from pandas.plotting import andrews_curves

    df.drop(["cars", "carname"], axis=1, inplace=True)

    plt.figure(figsize=(12,9), dpi= 80)

    andrews_curves(df, "cyl", colormap="Set1")

    plt.title("Andrews Curves of mtcars", fontsize=22)

    plt.

    展开全文
  • Python语言学习之图表可视化python语言中可视化工具包的简介、安装、使用方法、经典案例之详细攻略 目录 python语言中可视化工具包的简介 python语言中可视化工具包的安装 python语言中可视化工具包的...
  • Python数数据据可可视视化化教教程程之之Matplotlib实实现现各各种种图图表表实实例例 这篇文章主要给大家介绍了关于Python数据可视化教程之利用Matplotlib实现各种图表的相关资料文中通过示例 码介绍的非常详细对...
  • num_score_300_310 = 0num_score_310_320 = 0num_score_320_330 = 0num_score_330_340 = 0num_score_340_350 = 0num_score_350_360 = 0num_score_360_370 = 0num_score_370_380 = 0num_score_380_390 = 0num_score_3...
  • Python数据可视化教程:基于Plotly的动态可视化绘图

    万次阅读 多人点赞 2019-06-13 15:27:44
    Plotly是一个非常著名且强大的开源数据可视化框架,它通过构建基于浏览器显示的web形式的可交互图表来展示信息,可创建多达数十种精美的图表和地图, 下面我们以jupyter notebook为开发工具数据分析。Matplotlib存在...
  • 主要介绍了Python数据可视化 pyecharts实现各种统计图表过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • python可视化图表

    2019-08-29 19:24:57
    import matplotlib.pyplot as plt import pandas as pd import numpy as np import matplotlib.pyplot as plt import pandas as pd import numpy as np In [2]: fig=plt.figure(figsize=(10,5)) ...
  • 主要给大家介绍了关于Python数据可视化教程之利用Matplotlib实现各种图表的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
  • python数据可视化--pyecharts生成图表

    千次阅读 2019-06-04 18:19:22
    python可视化系列】python数据可视化利器--pyecharts echarts官网 一、前言 echarts是什么?下面是来自官方的介绍: ECharts,缩写来自Enterprise Charts,商业级数据图表,Echarts 是百度开源的一个数据可视...
  • Python数据可视化编程实践-绘制图表 准备工作 打开Jupyter Notebook导入需要的包并配置好图片交互和中文显示环境 import pandas as pd import numpy as np import sys reload(sys) sys.setdefaultencoding'utf-8) ...
  • Python 数据可视化编程实践 - 绘制图表 准备工作 打开 Jupyter Notebook 导入需要的包 并配置好图片交互和中文显示环 境 import pandas as pd import numpy as np import sys reload(sys) sys.setdefaultencoding'...
  • 使用的编辑器是Pycharm工具软件,...简单的 python 图表 import pygal pygal.Bar()(1, 3, 3, 7)(1, 6, 6, 4).render() 生成 svg 图表(svg 文件查看的时候请用浏览器打开查看哟!!!)。 pygal.Bar()(1,...
  • 结构化图表可视化 FacetGrid() 1.基本设置 #绘制直方图 示例1: import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns #设置风格、尺度 sns.set_style('ticks') sns....
  • 本节书摘来异步社区《Python数据可视化编程实战》一书中的第5章,...第 5 章 创建3D可视化图表 Python数据可视化编程实战本章将学习以下内容。 创建3D柱状图创建3D直方图在matplotlib中创建动画用OpenGL制作动画 ...
  • import pandas as pd import matplotlib.pyplot as plt books = pd.read_excel('bookds.xlsx', index_col='ID') books['Price'] = books['ListPrice'] * books['Discount'] 课时09
  • 可视化图表包括直方图,折线,散点,三维,二维,经纬图等 代码和示例,
  • Python数据可视化编程实战是一本使用Python实现数据可视化编程的实战指南,介绍了如何使用Python流行的库,通过60余种方法创建美观的数据可视化效果。 全书共8章,分别介绍了准备工作环境、了解数据、绘制并定制化...
  • 全书共8章,分别介绍了准备工作环境、了解数据、绘制并定制化图表、学习更多图表和定制化、创建3D可视化图表、用图像和地图绘制图表、使用正确的图表理解数据以及更多matplotlib知识。 《Python数据可视化编程实战》...
  • Python数据可视化

    2021-01-27 14:38:48
    Echarts是百度开源的一个数据可视化JS库。主要用于数据可视化。 pyecharts兼容Python2和Python3。目前版本为0.1.2 首先开始来绘制你的第一个图表 Tip:可以按右边的下载按钮将图片下载到本地 ad
  • 对于人类来说,图案和文字这两种信息表现方式,图案应该更早于文字被发明,现代考古人员时常在...今天我们就来讲讲在Python中如何把数据转换为可视化图表。 本文知识点: pyecharts简介与安装 pyecharts创建第...
  • 可视化就跟学弹吉他一样,刚开始你会觉得自己弹出来的是噪音,也就有了在使用python可视化的时候,总说,我擦,为啥别人画的图那么溜: 【python可视化系列】python数据可视化利器--pyecharts echarts官网 一、...
  • num_score_300_310 = 0num_score_310_320 = 0num_score_320_330 = 0num_score_330_340 = 0num_score_340_350 = 0num_score_350_360 = 0num_score_360_370 = 0num_score_370_380 = 0num_score_380_390 = 0num_score_3...
  • python图表绘制及可视化

    千次阅读 2018-05-28 23:05:25
    用于数据分析及可视化(更多内容可以阅读官方文档) 1.Matplotlib 子库:pyplot,与MATLAB相似 函数式绘图 import numpy as np import matplotlib.pyplot as plt x=np.linspace(0,10,1000) y=np.sin(x) z=np.cos...
  • Python图表可视化」Bar(柱状图) Python在处理各种数据时,利用图表(PyEcharts)将其可视化,提供直观、交互丰富、可高度个性化定制的数据可视化图表。以下是基于Python3的PyEcharts柱状图(Bar)图表可视化Demo的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,611
精华内容 1,044
关键字:

python图表可视化

python 订阅